準備
(なし)
デザイン
1. フォーム (Form1) にボタン (button1) を配置します。
2. フォーム (Form1) にデータグリッドビュー (dataGridView1) を配置します。
サンプルコード (C#)
// 名前空間の追加 // (なし) // 構造体の宣言 struct stComputer { public string sMaker; public string sPCName; } // コード private void Form1_Load(object sender, EventArgs e) { DataSet ds = new DataSet(); DataTable dt = ds.Tables.Add("Computer"); DataRow dr; stComputer[] sF = { new stComputer { sMaker = "NEC", sPCName = "ValueStar" }, new stComputer { sMaker = "SONY", sPCName = "VAIO"}, new stComputer { sMaker = "DELL", sPCName = "Precision"} }; dt.Columns.Add("メーカー"); dt.Columns.Add("パソコン名"); foreach (stComputer item in sF) { dr = dt.NewRow(); dr["メーカー"] = item.sMaker; dr["パソコン名"] = item.sPCName; dt.Rows.Add(dr); } dataGridView1.DataSource = ds; dataGridView1.DataMember = "Computer"; }
サンプルコード (C++/CLI)
この言語にはサンプルコードはありません。
解説
データグリッドビューの列に設定したコンボボックスをコンボボックスをクリックすると、そのクリックはフォーカスを設定する意味となります。リストを展開するには、もう 1 回コンボボックスをクリックする必要があります。これでは使い勝手がよくありません。
そこで、他のセルにフォーカスがあっても、コンボボックスを 1 回クリックすると、フォーカスの設定とリストの展開を同時に行っています。ポイントはグリッドビューを編集状態にした上で、DataGridViewComboBoxEditingControl のプロパティを変更することです。
結果
動作確認環境
Visual Studio 2015 Professional (C# 6.0)