2016/10/21(Fri) 09:39:52 編集(投稿者)
■No81634 (夜叉丸 さん) に返信
> Windows7 にて VisualStudio2010 C# .Net を使用しています。
>
> タイトル通りのコンボボックスの文字の表示方法ですが
>
> フォントのサイズを変更しないでコンボボックスのサイズを大きくして表示したいのですが
> コンボボックスでは不可能なのでしょうか?
頑張ればできるかもしれませんが簡単ではないかと思います。
フォントサイズは大きくしてOwnerDrawで小さいフォントにて描画するとよいかと思います。
> で、コンボボックスの上にラベルを重ねて表示をごまかそうとしたのですが
> Label だと DropDownStyle を DropDownList にしたときの グラデーション表示ができません。
グラデーションというのは2色以上の色をだんだん変化させて表示するものをいいますが合っていますか?
ハイライト表示のことであればOwnerDrawにより描画は可能です。
オーナードローサンプル:
ComboBox1のプロパティ
DrawMode = OwnerDrawFixed (リストの行毎に高さをかえるならVariable)
ComboBOx1のイベント:
Private Sub ComboBox1_DrawItem(sender As Object, e As System.Windows.Forms.DrawItemEventArgs) Handles ComboBox1.DrawItem
e.DrawBackground()
Using fnt = New Font(ComboBox1.Font.Name, 8.0!)
Dim brs = If((e.State And DrawItemState.Selected) > 0, Brushes.White, Brushes.Black)
Dim textDraw = If(e.Index = -1, ComboBox1.Text, ComboBox1.Items(e.Index).ToString)
e.Graphics.DrawString(textDraw, fnt, brs, e.Bounds)
End Using
e.DrawFocusRectangle()
End Sub
#VB.NETで書いてしまったので適当に変換して読み替えて下さい。