Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Winforms 如何为datagridview组合框列分配热键?_Winforms_C# 4.0_Datagridview_Datagridviewcombobox - Fatal编程技术网

Winforms 如何为datagridview组合框列分配热键?

Winforms 如何为datagridview组合框列分配热键?,winforms,c#-4.0,datagridview,datagridviewcombobox,Winforms,C# 4.0,Datagridview,Datagridviewcombobox,我有网格视图有组合框列[“column2”] if(keyData==(Keys.F11)) { 对于(int i=0;i

我有网格视图有组合框列[“column2”]

if(keyData==(Keys.F11))
{
对于(int i=0;i
您不能直接将
ShortcutKey
分配给单个单元格。为组合键处理
DataGridView
KeyPress
事件。在事件处理程序中,输入以下代码

void dataGridView1_KeyDown(object sender, KeyEventArgs e)
{
    if(e.KeyData == (Keys.Alt | Keys.E))
    {
        dataGridView1.Rows[RowIndex].Cells[ColumnIndex].Selected = true;
        dataGridView1.CurrentCell = dataGridView1.Rows[RowIndex].Cells[ColumnIndex];
        dataGridView1.BeginEdit(false);
    }
}
如果任何单元格已处于编辑模式,则编辑控件将获得
KeyPress
事件,而不是
DataGridView
。如果要克服这一问题,必须对现有DataGridView控件进行子类化,并覆盖其
ProcessCmdKey
函数。请参阅SO问题的答案

要更改编辑组合的选定索引,请订阅
EditingControlShowing
事件,并在事件处理程序中更改
组合框
索引

private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
    ComboBox control = e.Control as ComboBox;
    if (control !=null)
    {
       // set the selected index of the combo here.
    }
}

聚焦该单元格中的问题并将其放下:我想用快捷键更改此列的索引!@KOKO抱歉,我无法理解您的意图…您想实现什么?我想更改的不仅仅是选择组合框单元格cell@KOKO如果可行,请接受答案并投票表决
private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
    ComboBox control = e.Control as ComboBox;
    if (control !=null)
    {
       // set the selected index of the combo here.
    }
}