C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

ツリー一括表示

DataGridViewコンボボックスオートコンプリート /ヤッターマン (17/03/14(Tue) 16:14) #83242


親記事 / 返信無し
■83242 / 親階層)  DataGridViewコンボボックスオートコンプリート
□投稿者/ ヤッターマン (1回)-(2017/03/14(Tue) 16:14:29)

分類:[C#] 

現在、C# (.NET Framework 4.5) で Windowsアプリを作成しております。

質問としては、DataGridViewのコンボボックスを使っておりますが、
コンボボックスをシングルクリック後、キーボタンを押下すると、
オートコンプリート機能(?)なのか、アイテムを自動で選択してくれます。

例)
■コンボボックスのアイテム
"AAA"
"BBB"
"CCC"
とあり、[C]キーを押下すると、"CCC"が自動で選択されます。
これはよいのですが、[Ctrl]+[C]キーを押下しても、
"CCC"が自動で選択されてしまいます。

その為、[Ctrl]キーを押下した時は、オートコンプリート機能を
無効にしたいのですが、どのように実装すれば宜しいのでしょうか?
どなたかご教授をお願いします。


以下に現在の実装を記載します。
----------------------------
private void Grid_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
DataGridViewComboBoxEditingControl comboBox =
e.Control as DataGridViewComboBoxEditingControl;
if (comboBox != null)
{
comboBox.KeyDown -= new KeyEventHandler(GridCombo_KeyDown);
comboBox.KeyDown += new KeyEventHandler(GridCombo_KeyDown);
}
}

private void GridCombo_KeyDown(object sender, KeyEventArgs e)
{
DataGridViewComboBoxColumn combo =
this.Grid.Columns["ID"] as DataGridViewComboBoxColumn;

if (e.Control)
{
// オートコンプリートを無効
combo.AutoComplete = false;
⇒これだとうまくいかない。。。。
}
else
{
// オートコンプリートを有効
combo.AutoComplete = true;
}
}

[ □ Tree ] 返信 編集キー/


管理者用

- Child Tree -