2015-02-07 59 views
0

好吧,我創建了一個名爲KeyCheck()的方法,它應該檢查一個按鍵是否被按下(具體來說就是回車鍵),如果是,它會按button1什麼傳遞給檢查鍵是否被按下的方法?

不幸的是,當我調用該方法時,我不確定要傳遞給它的方法。我希望它知道何時按下回車鍵。

public partial class Form1 : Form 
{ 
    public void GameStart() 
    { 
     richTextBox1.WordWrap = true; 
     richTextBox1.SelectionAlignment = HorizontalAlignment.Center; 
     richTextBox1.Text = "Hello, Welcome to Grandar!"; 
    } 

    public Form1() 
    { 
     InitializeComponent(); 
     GameStart(); 
     //What variable do I pass to KeyCheck Method? 
     KeyCheck(); 
    } 

    private void KeyCheck(KeyPressEventArgs k) 
    { 
     if (k.KeyChar == (char)Keys.Enter) 
     { 
      button1.PerformClick(); 
     } 
    } 

    private void richTextBox1_TextChanged(object sender, EventArgs e) 
    { 

    } 

    private void button1_Click(object sender, EventArgs e) 
    { 

    } 
} 

回答

0

的東西夫婦這裏要注意:

一)你真要直接調用KeyCheck作爲示例代碼提示,還是應該進行佈線的形式處理程序(其中信息你所要求的將被自動提供 - 需要改變簽名以符合標準處理程序,就像你在其他一些方法中一樣)。

B)我不認爲你可以調用KeyCheck方法就像你正在做的,除非你掛鉤另一個事件來捕獲鍵擊,然後將它傳遞給該方法,通過newing了new KeyPressEvent(...)

因此,要回答你的問題,我想你會想是這樣(僞代碼)

public Form1() 
{ 
    InitializeComponent(); 
    GameStart(); 

    // Wire up a handler for the KeyPress event 
    this.KeyPress += KeyCheck; 
} 

private void KeyCheck(object sender, KeyPressEventArgs e) 
{ 
    if (e.KeyChar == (char)Keys.Enter) 
    { 
     button1.PerformClick(); 
    } 
} 
+0

謝謝您的回答。 – user3751027 2015-02-07 23:39:58

0

訂閱此:

this.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.KeyPress_Method); 

以及檢查Enter鍵的方法:

void KeyPress_Method(object sender, KeyPressEventArgs e) 
{ 
    if (e.KeyChar == (char)13) // enter key 
    { 
     // your code 
    } 
} 
+0

謝謝你的回答。 – user3751027 2015-02-07 23:40:13