DropDownButton
内で使用される をダブルクリックしないようにするにはどうすればよいDataGridView
ですか? 現在、DataGridView
2 回以上クリックすることで、ドロップダウン項目を表示できます。最初にセルを選択し、2 回目にDropDownButton
矢印をクリックすると、リストが表示されます。ワンクリックで同じことを達成するにはどうすればよいですか?
3 に答える
to :リンクEditMode
のプロパティを設定するDataGridView
EditOnEnter
DataGridView.EditMode
- セルの編集を開始する方法を示す値を取得または設定します。
EditOnEnter
- セルがフォーカスを受け取ると、編集が開始されます。
EditingControlShowing
これは、グリッドのイベントをサブスクライブし、タイプの制御のためにサブスクライブすることで実現できますComboBox
ComboBox ctl = e.Control as ComboBox;
ctl.Enter -= new EventHandler(ctl_Enter);
ctl.Enter += new EventHandler(ctl_Enter);
Enter イベントでは、プロパティを使用します。
void ctl_Enter(object sender, EventArgs e)
{
(sender as ComboBox).DroppedDown = true;
}
DroppedDown は、その名前が示すように、ドロップダウン領域が表示されているかどうかを示します。そのため、コントロールが入力されるたびに、これが true に設定され、さらにクリックする必要なく項目が表示されます。
「DataGridViewのEditModeプロパティをEditOnEnterに設定する」はうまくいきましたが、別の問題が見つかりました.DELキーを選択して押すだけでは行を削除できません。それで、グーグル検索は私にそれを行う別の方法を与えてくれました。CellEnter イベントをキャッチし、セルが適切なタイプであるかどうかを確認して、次のサンプル コードのように適切なアクションを実行します。
private void Form_OnLoad(object sender, EventArgs e){
dgvArmazem.CellEnter += new DataGridViewCellEventHandler(dgvArmazem_CellEnter);
}
void dgvArmazem_CellEnter(object sender, DataGridViewCellEventArgs e)
{
DataGridView dg = (DataGridView)sender;
if (dg.CurrentCell.EditType == typeof(DataGridViewComboBoxEditingControl))
{
SendKeys.Send("{F4}");
}
}
ComboBox のドロップダウンが速くなり、ユーザーは行を選択して DEL キーを押すことで行を削除するようになりました。
それでおしまい。