我正在嘗試將 VB.NET 代碼轉換為 C#,從我發現此 PerformClick 問題的所有代碼中,我不知道發生了什么。
我的 VB.Net 代碼:
Private Sub FormLogin_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
Select Case e.KeyCode
Case Keys.Enter
FlBtnLogin.PerformClick()
End Select
End Sub
該代碼有效,但是當我嘗試將其轉換為 C# 時,它不起作用。
我的 C# 代碼
private void FormLogin_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
FlBtnLogin.PerformClick();
}
}
事件處理程式
this.KeyDown = new System.Windows.Forms.KeyEventHandler(this.FormLogin_KeyDown);
任何幫助和指導將不勝感激,謝謝
uj5u.com熱心網友回復:
您需要將KeyPreview表單的屬性設定為true. 如果是false,默認情況下是 ,那么當可以引發鍵盤事件的子控制元件具有焦點時,表單將不會引發鍵盤事件。將其設定為true,表單將在子控制元件之前引發事件。在 C# 和 VB 中都是如此,因此它與您正在轉換的代碼沒有任何關系。
uj5u.com熱心網友回復:
根據@John,這是最好的選擇,如果您希望在KeyPreview為OFF時將事件放在特定的 Control 中,這是另一種選擇。
此代碼僅在表單處于焦點時才有效,但如果您將焦點/游標放在其他控制元件上則不會作業。
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
MessageBox.Show("Enter!");
}
}
而當焦點位于 TextBox 上時將呼叫此事件。
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
MessageBox.Show("Enter!");
}
}
因此,您必須在控制元件上添加事件,您可能會在其中按下 Enter 鍵,這是用于輸入密碼的文本框。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/484749.html
上一篇:vb.net更新Excel檔案
