C# 在上下按箭头键的同时,在DataGridViewCombobox上设置焦点

C# 在上下按箭头键的同时,在DataGridViewCombobox上设置焦点,c#,asp.net,winforms,datagridviewcombobox,C#,Asp.net,Winforms,Datagridviewcombobox,我有一个datagridview,其中有三列。实际上这是一个数据处理应用程序,这就是为什么我想使用键盘(最少使用鼠标) 代码如下 [code language=“csharp”] private void Form2\u加载(对象发送方,事件参数e) { DataTable odt=新DataTable(); DataColumn odc=新的DataColumn(); DataColumn odcSec=新DataColumn(); DataColumn odcThird=新DataColum

我有一个datagridview,其中有三列。实际上这是一个数据处理应用程序,这就是为什么我想使用键盘(最少使用鼠标) 代码如下 [code language=“csharp”]

private void Form2\u加载(对象发送方,事件参数e)
{
DataTable odt=新DataTable();
DataColumn odc=新的DataColumn();
DataColumn odcSec=新DataColumn();
DataColumn odcThird=新DataColumn();
DataColumn odcForth=新DataColumn();
odc.ColumnName=“Class”;
odt.Columns.Add(odc);
odcSec.ColumnName=“主题名称”;
odt.Columns.Add(odcSec);
odcThird.ColumnName=“等级”;
odt.Columns.Add(odcThird);
odcForth.ColumnName=“GradeCollection”;
odt.Columns.Add(odcForth);
DataRow odr=odt.NewRow();
odr[“类”]=“FYBA”;
odr[“受试者姓名”]=“印地语”;
odr[“等级”]=“A”;
odr[“等级集合”]=“A、B、C、D、E”;
odt.Rows.Add(odr);
DataRow odrFirst=odt.NewRow();
odrFirst[“类”]=“SYBA”;
odrFirst[“主题名称”]=“英语”;
odrFirst[“等级”]=“B”;
odrFirst[“等级集合”]=“A、B、C、D、E”;
odt.Rows.Add(odrFirst);
DataRow odrSecond=odt.NewRow();
odrSecond[“类”]=“SYBA”;
odrSecond[“主题名称”]=“英语”;
ODR秒[“等级”]=“C”;
odrSecond[“GradeCollection”]=“A、B、C、D、E”;
odt.Rows.Add(odrSecond);
DataRow odrThird=odt.NewRow();
odrThird[“Class”]=“TYBA”;
odrThird[“受试者姓名”]=“马拉蒂”;
odrThird[“等级”]=“D”;
odrThird[“GradeCollection”]=“A、B、C、D、E”;
odt.Rows.Add(odrThird);
DataRow odrForth=odt.NewRow();
odrForth[“类”]=“FYBA”;
odrForth[“受试者姓名”]=“Telagu”;
奥德福思[“等级”]=“E”;
odrForth[“GradeCollection”]=“A、B、C、D、E”;
odt.Rows.Add(odrForth);
如果(odt!=null&&odt.Rows.Count>0)
{
DataGridViewTextBoxColumn txtClass=新DataGridViewTextBoxColumn();
txtClass.HeaderText=“Class”;
txtClass.MaxInputLength=20;
txtClass.Width=70;
txtClass.Name=“Class”;
kryptonDataGridView1.Columns.Add(txtClass);
DataGridViewTextBoxColumn txtSubjectName=新DataGridViewTextBoxColumn();
txtSubjectName.HeaderText=“SubjectName”;
txtSubjectName.MaxInputLength=20;
txtSubjectName.Width=70;
txtSubjectName.Name=“SubjectName”;
kryptonDataGridView1.Columns.Add(txtSubjectName);
DataGridViewComboBoxColumn ComboxColumn=新DataGridViewComboxColumn();
comboboxColumn.HeaderText=“等级”;
comboboxColumn.DropDownWidth=160;
comboboxColumn.Width=90;
comboboxColumn.MaxDropDownItems=3;
comboboxColumn.FlatStyle=FlatStyle.Flat;
kryptonDataGridView1.TabStop=true;
kryptonDataGridView1.Focus();
kryptonDataGridView1.Columns.Insert(2,comboboxColumn);
对于(int i=0;i
[/code]

现在我想使用箭头键和enter键选择组合框,但当我按箭头键时,焦点转到下一行组合框列,而不是选择该特定组合框。同样,当我使用enter键时,焦点转到下一列。我想当我按enter键或箭头键时,它选择组合框(意味着焦点应该放在组合框上)这样我就可以从组合框中选择项目而不需要空格键。

您可以使用以下代码:

    private void kryptonDataGridView1_CellEnter(object sender, 
                                                DataGridViewCellEventArgs e)
    {
        if (e.ColumnIndex == 2)
        {
            kryptonDataGridView1.BeginEdit(true);
        }
    }
    private void kryptonDataGridView1_CellEnter(object sender, 
                                                DataGridViewCellEventArgs e)
    {
        if (e.ColumnIndex == 2)
        {
            kryptonDataGridView1.BeginEdit(true);
        }
    }