2017-06-26 73 views
0

當我執行,它將運行,但是當我按下回車鍵的消息框仍然顯示使用文本框,沒有按鈕,輸入要執行則只有數允許

爲moneytextbox的keydown

  if (e.KeyCode == Keys.Enter) 
     { 
      int a, b, c; 
      a = int.Parse(money.Text); 
      b = int.Parse(bill.Text); 
      c = a - b; 

      change.Text = c.ToString(); 
     } 

爲moneytextboxKeypress

if (!(Char.IsDigit(e.KeyChar) || (e.KeyChar == (char)Keys.Back))) 
{ 
     MessageBox.Show("please enter digits only"); 
     e.Handled = true; 
} 

我試圖解鎖的按鍵事件回車鍵

if (!(Char.IsDigit(e.KeyChar) || (e.KeyChar == (char)Keys.Enter))) 
{ 
    MessageBox.Show("please enter digits only"); e.Handled = true; 
} 

但「消息框」仍然出現

+0

我試圖疏通回車鍵的按鍵事件 如果(!(Char.IsDigit(e.KeyChar)||(e.KeyChar ==(char)的Keys.Enter))){ MessageBox的 。顯示(「請只輸入數字」); e.Handled = true; } messagebox依然出現 –

回答

0

,因爲一旦你按下鍵盤上的任何內容要調用按鍵時兩次,keydown事件觸發會。由於您按下了「按鍵」,因此將觸發keydown和keypress事件處理程序。把所有事情都放在keydown事件處理程序上,以處理所有請求:

if (e.KeyCode == Keys.Enter) 
     { 
      int a, b, c; 
      a = int.Parse(label1.Text); 
      b = int.Parse(label2.Text); 
      c = a - b; 

      label3.Text = c.ToString(); 
      return; 
     } 

     if (!(Char.IsDigit((char)e.KeyData) || (e.KeyData == Keys.Up))) 
     { 
      MessageBox.Show("please enter digits only"); 
     } 

並刪除moneytextboxKeypress。

+0

當我按一個字母的消息框出現,但該信件出現在文本框,,你的代碼是一個很大的幫助壽,謝謝 –

+0

很高興成爲幫助@PrinceJkc。 –

相關問題