C# :DataGridView中使按下Enter鍵達到與按下Tab鍵一樣的效果?

來源:互聯網
上載者:User

要使按下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();

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.