リストボックス項目にいくつかの視覚的な変更を加えたいので、DrawMode を "OwnerDrawFixed" に設定します。テキストを垂直方向に項目の中央にしたいので、これを行うことで簡単になりました。
private void listTypes_DrawItem(object sender, DrawItemEventArgs e)
{
e.DrawBackground();
e.Graphics.DrawString(listTypes.Items[e.Index].ToString(),
e.Font, Brushes.Black, e.Bounds.Left, e.Bounds.Top + e.Bounds.Height/4
, StringFormat.GenericDefault);
e.DrawFocusRectangle();
}
しかし、テキストを水平に中央に配置するには、テキストの幅を知る必要があります。それを取得する方法、またはこれを行うためのより良い方法があります