- PR -

コンボボックスの動的な幅変更

1
投稿者投稿内容
たま
会議室デビュー日: 2006/01/16
投稿数: 2
投稿日時: 2006-01-16 10:30
取得したデータから最大幅を計算し
動的に、コンボボックスのDropDownWidthを変更させようとしていて
サンプルのつもりで
DrawItemイベントハンドラとして、下記メソッドを呼び出しているのですが
コンボボックスのボタンを3度押さなければプルダウンが表示されない状態になってしまいます。
どの部分に問題があるのか見当がつかない状態なので、どなたかご教授宜しくお願いします。

private void comboBox1_DrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e)
{
// 文字列サイズの取得
Graphics g = e.Graphics;
System.Drawing.SizeF size = g.MeasureString(comboBox1.Text, comboBox1.Font);
comboBox1.DropDownWidth = (int) size.Width;

// 描画する文字列の取得
string txt = ((ComboBox) sender).Items[e.Index].ToString();
//文字列の描画
e.Graphics.DrawString(txt, e.Font, new SolidBrush(e.ForeColor), e.Bounds);

// フォーカスを示す四角形を描画
e.DrawFocusRectangle();
}
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-01-16 11:13
引用:

たまさんの書き込み (2006-01-16 10:30) より:

取得したデータから最大幅を計算し動的に、コンボボックスのDropDownWidthを変更させようとしていて


拡張 ComboBox の作成

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
1

スキルアップ/キャリアアップ(JOB@IT)