私は autoComplete コンボボックス列を持つバインドされた dataGridView を持っています。
初めてオートコンプリート セルにテキストを入力し、tabKey を使用して次のセルに移動すると、選択内容が保持されず、選択内容がクリアされ、オートコンプリート セルが null のままになります。すぐに左矢印キーを使用してそのオートコンプリート セルに戻り、テキストを入力すると、選択した内容が問題なく保持されます。
したがって、問題は、セルに最初の最初の選択を保持させることです。現在の唯一の回避策は、Tab キーを押して次のセルに移動し、この問題のある autoComplete コンボボックス セルに戻って、全体を入力することです。この時点で、それは機能します。
セルを離れるときに選択したテキストをコミットするために処理する必要があるイベントはありますか?
コード:
private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
if (e.Control is ComboBox)
{
((ComboBox)e.Control).DropDownStyle = ComboBoxStyle.DropDown;
((ComboBox)e.Control).AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend;
((ComboBox)e.Control).AutoCompleteSource = AutoCompleteSource.ListItems;
}
}
編集:以下のCellLeaveでは、選択を行った場合でも値がnullとして返されます。
private void dataGridView1_CellLeave(object sender, DataGridViewCellEventArgs e)
{
var Row = this.dataGridView1.CurrentRow.Index;
string value = this.dataGridView1["itemID", Row].Value.ToString();
}