• 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();
  • 相关阅读:
    海量的数据的处理
    leetcode(135)分发糖果
    leetcode(130)被围绕的区域
    排序算法
    leetcode(956)最高的广告牌
    kafka的配置
    kafka命令行
    leetcode(76)最小覆盖子串
    Vue开发全解
    idea eclipse 设置代理
  • 原文地址:https://www.cnblogs.com/Fooo/p/1622072.html
Copyright © 2020-2023  润新知