2013-01-17 26 views
-3

IM對C#打字導師簡單的項目工作打字導師幫助C#

enter image description here

PLZ任何一個可以幫助我,我有一個問題..後面的按鈕我的代碼

private void btnq_KeyDown(object sender, KeyEventArgs e) 
    { 
     if (e.KeyValue == 81) 
     { 
      i = Convert.ToInt16(rtb1.Text.IndexOf('q')); 

      if (i == 0) 
      { 

       rtb1.Text = rtb1.Text.Remove(0, 1); 
      } 

     } 
    } 

當我調試項目,並從鍵盤上按Q鍵什麼都沒有發生..但是當我點擊Q按鈕與點擊鼠標((我寫代碼爲鼠標點擊事件,但它的工作))它的工作,並點擊現在後,如果我按Q按鈕從關鍵板然後它的工作..爲什麼不工作,當我第一次按鍵從鍵盤..

我在哪裏錯了? plz help ..i將等待..

+0

Slaks先生,我如果當鍵入任何mistak對不起,基於m新。 –

+0

當您用鼠標點擊時,帶有繪製按鈕的組件會獲得焦點 - 並且組件會截取後續的鍵盤事件。 –

+0

我應該怎麼做?你能爲任何一個按鈕編寫任何示例嗎? –

回答

1

它看起來像你的事件處理程序是附加到Q按鈕。這意味着只有當您按下某個鍵時,纔會調用該按鈕,而該按鈕的焦點爲

你應該做的是將事件處理程序添加到鍵盤組框,或類似的東西。

0

在應用程序啓動時,您輸入的組件沒有焦點。

你可以做的是把焦點放在你的構造函數中。

MyControl.Focus(); 
+0

我試了但仍然一樣..在點擊鼠標後,然後鍵盤按下工作..直接鍵盤按鍵不工作。簡單解釋 –

0

我添加這個我的問題解決了,但我還在原地面臨的一個問題。當我開始打字,時鐘時間開始,用空間停止key.what我應該怎麼辦?它在打字時造成問題。

  private void Form1_KeyPress(object sender, KeyPressEventArgs e) 

    { 
     if (btnclock.Text == "Start") 
      e.Handled = false ; 
     else 
     { 
     i = Convert.ToInt16(rtb1.Text.IndexOf(e.KeyChar)); 

      if (i == 0) 
      { 

       rtb1.Text = rtb1.Text.Remove(0, 1); 
      } 
      else 
       j++; 
      textBox1.Text = Convert.ToString((j)); 
     } 
    }