簡體   English   中英

C# 使 Enter 鍵的行為就像按下了按鈕一樣

[英]C# Making it so the Enter Key behaves as if a button has been pressed

我該如何編碼,以便在按下 Enter 鍵時,它的行為就像按下了現有表單上的按鈕一樣?

假設表單上的按鈕使它顯示 hello 的顯示消息

 private void buttonHello_Click(object sender, EventArgs e)
{
    MessageBox.Show("Hello");
}

我如何做到這樣當按下回車鍵時它會做同樣的事情(對於我的生活我不記得了,這可能真的很簡單而且我真的很笨)

WinForms? 如果是,請選擇表格。 現在在屬性窗格(默認屏幕右下角)中,將AcceptButton屬性更改為“buttonHello”。

Form.AcceptButton

獲取或設置窗體上當用戶按下 ENTER 鍵時單擊的按鈕。

這是它在“屬性”窗格中的樣子:

在此處輸入圖片說明

捕獲Enter鍵按下事件,如下所示:

private void Form1_KeyDown(object sender, KeyEventArgs e) 
{
    if (e.KeyCode == Keys.Enter){
        button.PerformClick();
    }
}

在您的表單屬性中,設置 AcceptButton = yourButton,就是這樣。

你在尋找這樣的東西嗎:-

private void tb_KeyDown(object sender, KeyEventArgs e) 
{
    if (e.KeyCode == Keys.Enter)        
        button.PerformClick();
}

Key Down事件處理程序添加到您的表單中。 然后檢查是否已按下回車鍵

private void form_KeyDown(object sender, KeyEventArgs e)
{
    if(e.KeyCode == Keys.Enter)
        buttonHello.PerformClick();
}

您正在朝着“魔術按鈕”反模式前進,症狀是您想從其他地方驅動按鈕。 以某種方式將您想要的行為與按鈕隔離(成員函數可以工作),然后從您喜歡的任何點調用相同的函數。 如果您真的只想回復回車鍵,最好的方法是,如@Idle_mind 所建議的那樣,使用AcceptButton

對於 WinForms:

using System.Windows.Forms; // reference

private void Form1_KeyDown(object sender, KeyEventArgs e) 
{
    if (e.KeyCode == Keys.Enter)
    {
        // do something
    }
}

對於 WPF:

using System.Windows.Input; // reference

private void Window_KeyDown(object sender, KeyEventArgs e)
{
    if (e.Key == Key.Enter)
    {
        // do something
    }
}

筆記

  • 此示例用於 Enter 按鈕,您可以輕松更改更改Keys.YOURKEY
  • 您需要先在表單或窗口中添加事件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM