zoukankan      html  css  js  c++  java
  • C# :DataGridView中使按下Enter键达到与按下Tab键一样的效果?

    要使按下Enter键达到与按下Tab键一样的效果,我们需要从DataGridView中派生出一个类,写一个自定义的DataGridView控件。这里有两个方面需要考虑。一方面,当DataGridView不处于编辑状态:在这种情况下,我们需要重写OnKeyDown事件来实现我们所需要的定位逻辑。另一方面,当DataGridView处于编辑的状态下:在这种情况下,Enter键是在ProcessDialogKey事件中被处理,因此我们需要重写该事件。详见以下示例:

     

     

    代码
    class myDataGridView : DataGridView

    {

        
    protected override bool ProcessDialogKey(Keys keyData)

        {

            
    if (keyData == Keys.Enter)

            {

                
    int col = this.CurrentCell.ColumnIndex;

                
    int row = this.CurrentCell.RowIndex;

                
    if (row != this.NewRowIndex)

                {

                    
    if (col == (this.Columns.Count - 1))

                    {

                        col 
    = -1;

                        row
    ++;

                    }

                    
    this.CurrentCell = this[col + 1, row];

                }

                
    return true;

            }

            
    return base.ProcessDialogKey(keyData);

        }

     

        
    protected override void OnKeyDown(KeyEventArgs e)

        {

            
    if (e.KeyData == Keys.Enter)

            {

                
    int col = this.CurrentCell.ColumnIndex;

                
    int row = this.CurrentCell.RowIndex;

                
    if (row != this.NewRowIndex)

                {

                    
    if (col == (this.Columns.Count - 1))

                    {

                        col 
    = -1;

                        row
    ++;

                    }

                    
    this.CurrentCell = this[col + 1, row];

                }

                e.Handled 
    = true;

            }

            
    base.OnKeyDown(e);

        }

    }

    运用:

    this.dataGridView1 = new myDataGridView();
  • 相关阅读:
    快速幂
    三角函数与反三角函数的使用
    poj1050 dp动态规划
    归并排序算法
    KMP算法(查找子序列)
    hdu1233 继续畅通工程 (最小生成树——并查集)
    set<pair<int,int> > 的运用
    HDU 4513 吉哥系列故事――完美队形II (manacher算法)
    Codeforces Round #360 (Div. 2) C. NP-Hard Problem (BFS)
    Codeforces Round #357 (Div. 2) C.Heap Operations 优先队列 + 模拟
  • 原文地址:https://www.cnblogs.com/Fooo/p/1622072.html
Copyright © 2011-2022 走看看