Bagikan melalui


DataGridView.ProcessDialogKey(Keys) Metode

Definisi

Memproses kunci, seperti tombol TAB, ESCAPE, ENTER, dan ARROW, yang digunakan untuk mengontrol kotak dialog.

protected:
 override bool ProcessDialogKey(System::Windows::Forms::Keys keyData);
protected override bool ProcessDialogKey (System.Windows.Forms.Keys keyData);
override this.ProcessDialogKey : System.Windows.Forms.Keys -> bool
Protected Overrides Function ProcessDialogKey (keyData As Keys) As Boolean

Parameter

keyData
Keys

Kombinasi Keys nilai bitwise yang mewakili kunci atau kunci untuk diproses.

Mengembalikan

true jika kunci diproses; jika tidak, false.

Pengecualian

Tombol yang ditekan akan menyebabkan kontrol memasuki mode edit, tetapi EditType properti sel saat ini tidak menunjukkan kelas yang berasal dari Control dan mengimplementasikan IDataGridViewEditingControl.

Tindakan ini akan menerapkan nilai sel atau memasuki mode edit, tetapi kesalahan dalam sumber data mencegah tindakan dan tidak ada handler untuk DataError peristiwa atau handler telah mengatur ThrowException properti ke true.

Contoh

Contoh kode berikut menunjukkan cara mengubah perilaku kunci ENTER dalam DataGridView subkelas dengan mengesampingkan ProcessDataGridViewKey metode dan ProcessDialogKey . Dalam contoh, kunci ENTER memiliki perilaku yang sama dengan tombol PANAH KANAN, sehingga memudahkan pengguna untuk mengedit beberapa sel dalam satu baris data.

public class CustomDataGridView : DataGridView
{
    protected override bool ProcessDialogKey(Keys keyData)
    {
        // Extract the key code from the key value. 
        Keys key = (keyData & Keys.KeyCode);

        // Handle the ENTER key as if it were a RIGHT ARROW key. 
        if (key == Keys.Enter)
        {
            return this.ProcessRightKey(keyData);
        }
        return base.ProcessDialogKey(keyData);
    }

    protected override bool ProcessDataGridViewKey(KeyEventArgs e)
    {
        // Handle the ENTER key as if it were a RIGHT ARROW key. 
        if (e.KeyCode == Keys.Enter)
        {
            return this.ProcessRightKey(e.KeyData);
        }
        return base.ProcessDataGridViewKey(e);
    }
}
Public Class CustomDataGridView
    Inherits DataGridView

    <System.Security.Permissions.UIPermission( _
        System.Security.Permissions.SecurityAction.LinkDemand, _
        Window:=System.Security.Permissions.UIPermissionWindow.AllWindows)> _
    Protected Overrides Function ProcessDialogKey( _
        ByVal keyData As Keys) As Boolean

        ' Extract the key code from the key value. 
        Dim key As Keys = keyData And Keys.KeyCode

        ' Handle the ENTER key as if it were a RIGHT ARROW key. 
        If key = Keys.Enter Then
            Return Me.ProcessRightKey(keyData)
        End If

        Return MyBase.ProcessDialogKey(keyData)

    End Function

    <System.Security.Permissions.SecurityPermission( _
        System.Security.Permissions.SecurityAction.LinkDemand, Flags:= _
        System.Security.Permissions.SecurityPermissionFlag.UnmanagedCode)> _
    Protected Overrides Function ProcessDataGridViewKey( _
        ByVal e As System.Windows.Forms.KeyEventArgs) As Boolean

        ' Handle the ENTER key as if it were a RIGHT ARROW key. 
        If e.KeyCode = Keys.Enter Then
            Return Me.ProcessRightKey(e.KeyData)
        End If

        Return MyBase.ProcessDataGridViewKey(e)

    End Function

End Class

Keterangan

Metode ini dipanggil dalam mode edit untuk menangani input keyboard yang tidak ditangani oleh kontrol pengeditan yang dihosting.

Jika penekanan tombol ditentukan untuk tidak menjadi kunci input, tombol tersebut akan dikirim ke kelas dasar untuk diproses.

Catatan Bagi Inheritor

Saat mengambil alih metode ini, kontrol harus kembali true untuk menunjukkan bahwa ia telah memproses kunci. Untuk kunci yang tidak diproses oleh kontrol, kembalikan hasil versi dasar metode ini.

Berlaku untuk

Lihat juga