public void InitData1Renderer(MidiViewer viewer,
                                          Panel contentPanel, BmpRenderer bmpRenderer)
            {
                releaseResources();


                this.Location = new Point(bmpRenderer.Location.X - Data1TextWidth,
                                          bmpRenderer.Location.Y);

                this.SizeMode = PictureBoxSizeMode.Normal;

                this.Size        = new Size(Data1TextWidth, bmpRenderer.Height);
                data1TextSpacing = (int)Math.Round((double)bmpRenderer.Height / (double)128);

                var f = viewer.GetFontForRect(
                    new Rectangle(0, 0,
                                  data1TextSpacing.Min(Data1TextWidth), data1TextSpacing.Min(Data1TextWidth)));

                if (f != null)
                {
                    this.Image = null;
                    this.bmp   = new Bitmap(Data1TextWidth, bmpRenderer.Height);
                    using (var g = Graphics.FromImage(bmp))
                    {
                        g.FillRectangle(Brushes.White, new Rectangle(0, 0, bmp.Width, bmp.Height));
                        for (int x = 128 - 1; x >= 0; x--)
                        {
                            g.DrawString(x.ToStringEx(), f, Brushes.Black,
                                         new PointF(0, x * data1TextSpacing));
                        }
                    }
                    this.Image = bmp;
                }
            }
        public MidiViewer()
        {
            InitializeComponent();

            bmpRenderer = new BmpRenderer("bmpRenderer", SmoothingMode.None);
            bmpRenderer.Location = new Point(Data1Renderer.Data1TextWidth, 0);

            bmpRenderer.SizeMode = PictureBoxSizeMode.Normal;

            this.contentPanel.Controls.Add(bmpRenderer);
            bmpRenderer.Dock = DockStyle.Fill;

            data1Renderer = new Data1Renderer("data1Renderer");

            data1Renderer.InitData1Renderer(this, contentPanel, bmpRenderer);
            data1Renderer.Location = new Point(0, 0);
            data1Renderer.Dock = DockStyle.Left;
            data1Renderer.SizeMode = PictureBoxSizeMode.Normal;
            this.contentPanel.Controls.Add(data1Renderer);

            data1Renderer.BringToFront();
        }
        public MidiViewer()
        {
            InitializeComponent();


            bmpRenderer          = new BmpRenderer("bmpRenderer", SmoothingMode.None);
            bmpRenderer.Location = new Point(Data1Renderer.Data1TextWidth, 0);

            bmpRenderer.SizeMode = PictureBoxSizeMode.Normal;

            this.contentPanel.Controls.Add(bmpRenderer);
            bmpRenderer.Dock = DockStyle.Fill;

            data1Renderer = new Data1Renderer("data1Renderer");

            data1Renderer.InitData1Renderer(this, contentPanel, bmpRenderer);
            data1Renderer.Location = new Point(0, 0);
            data1Renderer.Dock     = DockStyle.Left;
            data1Renderer.SizeMode = PictureBoxSizeMode.Normal;
            this.contentPanel.Controls.Add(data1Renderer);


            data1Renderer.BringToFront();
        }
            public void InitData1Renderer(MidiViewer viewer,
                Panel contentPanel, BmpRenderer bmpRenderer)
            {
                releaseResources();

                this.Location = new Point(bmpRenderer.Location.X - Data1TextWidth,
                    bmpRenderer.Location.Y);

                this.SizeMode = PictureBoxSizeMode.Normal;

                this.Size = new Size(Data1TextWidth, bmpRenderer.Height);
                data1TextSpacing = (int)Math.Round((double)bmpRenderer.Height / (double)128);

                var f = viewer.GetFontForRect(
                    new Rectangle(0, 0,
                        data1TextSpacing.Min(Data1TextWidth), data1TextSpacing.Min(Data1TextWidth)));

                if (f != null)
                {
                    this.Image = null;
                    this.bmp = new Bitmap(Data1TextWidth, bmpRenderer.Height);
                    using (var g = Graphics.FromImage(bmp))
                    {
                        g.FillRectangle(Brushes.White, new Rectangle(0, 0, bmp.Width, bmp.Height));
                        for (int x = 128 - 1; x >= 0; x--)
                        {
                            g.DrawString(x.ToStringEx(), f, Brushes.Black,
                                new PointF(0, x * data1TextSpacing));
                        }
                    }
                    this.Image = bmp;
                }
            }