20

DropDownButton内で使用される をダブルクリックしないようにするにはどうすればよいDataGridViewですか? 現在、DataGridView2 回以上クリックすることで、ドロップダウン項目を表示できます。最初にセルを選択し、2 回目にDropDownButton矢印をクリックすると、リストが表示されます。ワンクリックで同じことを達成するにはどうすればよいですか?

4

3 に答える 3

19

to :リンクEditModeのプロパティを設定するDataGridViewEditOnEnter

DataGridView.EditMode- セルの編集を開始する方法を示す値を取得または設定します。

EditOnEnter- セルがフォーカスを受け取ると、編集が開始されます。

于 2013-01-23T15:22:33.763 に答える
15

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 に設定され、さらにクリックする必要なく項目が表示されます。

于 2011-06-14T10:59:02.987 に答える
7

「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 キーを押すことで行を削除するようになりました。

それでおしまい。

于 2013-07-29T05:36:16.253 に答える