• ベストアンサー

ComboBoxの表示について

VB入門者ですがよろしくお願いします。 2005を使用しているのですが、 ComboBoxのtextの内容を中央に表示したいのですが、 どうしたらよいのでしょうか? (TextBoxの.TextAlignのようなもの) 教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • unamana19
  • ベストアンサー率62% (56/89)
回答No.1

プロパティの設定だけでは実現できません。 ComboBoxのDrawModeプロパティをOwnerDrawFixedまたは、OwnerDrawVariableに設定して、 ComboBoxのDrawItemイベント内で描画の処理を行ってやります。 Private Sub ComboBox1_DrawItem(ByVal sender As Object, ByVal e As System.Windows.Forms.DrawItemEventArgs) Handles ComboBox1.DrawItem   Dim cmb As ComboBox = CType(sender, ComboBox)   Dim txt As String = cmb.Items(e.Index).ToString   Dim sf As SizeF = e.Graphics.MeasureString(txt, e.Font)   Dim rf As RectangleF   With rf     .X = (e.Bounds.Width - CInt(sf.Width)) \ 2     .Y = e.Bounds.Y     .Width = e.Bounds.Width     .Height = e.Bounds.Height   End With   e.DrawBackground()   e.Graphics.DrawString(txt, e.Font, Brushes.Black, rf)   e.DrawFocusRectangle() End Sub このような感じ・・・ フォントの色などは手抜きなので・・・ (注意!表示の関係上、ソースのスペースは全角にしています)

oshiete44
質問者

お礼

早速のご回答ありがとうございました。 すみません。vb入門者なので・・・ うまく動作しませんでした。 ComboBoxのDrawModeプロパティをOwnerDrawFixedに設定して、 以下のプログラムをそのままコピーしたのですが、 それではダメなのでしょうか? drawitemはいつ、発生するイベントなのですか? よろしければ、教えてください。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

Additems するアイテム文字列について、 所定の長さのスペース文字列を用意し、 (所定の長さー当アイテム文字列長さ)/2を整数化した位置から 当文字列を貼り付た文字列を アイテムとして設定してはどうでしょう。

oshiete44
質問者

お礼

ありがとうございました。

関連するQ&A