title: ComboBox Text Align Vertically Center
body: <p>I created the custom combobox on .net framework 1.1, i can custom draw dropdown items,  but i can't set or draw the combobox text on Middle Left , combobox text always render top left , but i need text should be render on middle left. </p>
  
  <pre><code>[ToolboxBitmap(typeof(ComboBox))]
  public class MenComboBox :ComboBox
  {
      private Image _image = Image.FromFile("Expand.png");
      public MenComboBox()
      {
          this.DrawMode = DrawMode.OwnerDrawFixed;
          this.BackColor = Color.White;
          this.ItemHeight = 18;
          this.Font = new Font("Arial",12f,FontStyle.Regular);
      }       
      protected override void OnDrawItem(DrawItemEventArgs e)
      {
  
              if (!DesignMode)
              {
                  if (e.Index &gt; -1)
                  {
                      int textHeight = (int)e.Graphics.MeasureString(this.Items[e.Index].ToString(), e.Font).Height;
                      Point textPos = new Point(e.Bounds.X + 4, e.Bounds.Y + ((this.ItemHeight - textHeight) / 2));
                      if ((e.State &amp; DrawItemState.Selected) == DrawItemState.Selected)
                      {
                          e.Graphics.FillRectangle(Brushes.Blue, e.Bounds);
                          e.Graphics.DrawString(this.Items[e.Index].ToString(),e.Font,Brushes.White,textPos);
                      }
                      else
                      {
                          e.Graphics.FillRectangle(Brushes.White, e.Bounds);
                          e.Graphics.DrawString(this.Items[e.Index].ToString(),e.Font,Brushes.Black,textPos);
                      }
                  }
              }
  
      }
      protected override void WndProc(ref Message m)
      {
          base.WndProc(ref m);
          if (m.Msg == 0x000F)
          {
              using (Graphics g = this.CreateGraphics())
              {
                  g.FillRectangle(new SolidBrush(BackColor), this.ClientRectangle);
                  g.DrawRectangle(Pens.Blue, new Rectangle(this.ClientRectangle.X, this.ClientRectangle.Y, this.ClientRectangle.Width - 1, this.ClientRectangle.Height - 1));
                  Rectangle rect = new Rectangle(this.Width - 15, 3, 12, this.Height - 6);
                  g.FillRectangle(new SolidBrush(BackColor), rect);
                  g.DrawImage(this._image, this.Width - 16, (this.Height - 8) / 2);
                  g.Dispose();
              }
          }
      }   
  }
  </code></pre>
  
  <p><a href="https://i.stack.imgur.com/pvvb0.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/pvvb0.png" alt="my Custom Combobox Appearance"></a></p>