DataGridView.ProcessDialogKey(Keys) Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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
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.