2016-02-26 69 views
-1

我不能得到以下vb.net代碼太工作。我試圖達到的目標是限制在3和6之間使用的數字。如果用戶輸入的值小於3,文本框將值更正爲3,並且用戶輸入的值大於6,則文本框值已更改爲6 ...Autocorrecting文本框輸入(vb.net代碼)

Select Case e.KeyChar 
    Case "3", "4", "5", "6", vbBack 
     e.Handled = False 
    Case Else 
     e.Handled = True 
     If TextBox27.Text <= 2 Then 
      MessageBox.Show("Minimum of 3 loads permissible", "Notification", MessageBoxButtons.OK, MessageBoxIcon.Information) 
      TextBox27.Text = "3" 
      TextBox27.Focus() 
     ElseIf TextBox27.Text >= 7 Then 
      'Shows error message... 
      MessageBox.Show("Maximum of 6 loads permissible", "Notification", MessageBoxButtons.OK, MessageBoxIcon.Information) 
      TextBox27.Text = "6" 
      TextBox27.Focus() 
     End If 

End Select 

回答

1

有關此問題的一些信息將會有所幫助。你是否遇到異常?我認爲你需要在2和7附近引用一些引號。此外,文本比較(即TextBox27.Text <= "2")可能會被愚弄,具體取決於你應用程序中的其他代碼。

Select Case e.KeyChar 
    Case "3", "4", "5", "6", vbBack 
     e.Handled = False 
    Case Else 
     e.Handled = True 
     If TextBox27.Text <= "2" Then 
      MessageBox.Show("Minimum of 3 loads permissible", "Notification", MessageBoxButtons.OK, MessageBoxIcon.Information) 
      TextBox27.Text = "3" 
      TextBox27.Focus() 
     ElseIf TextBox27.Text >= "7" Then 
      'Shows error message... 
      MessageBox.Show("Maximum of 6 loads permissible", "Notification", MessageBoxButtons.OK, MessageBoxIcon.Information) 
      TextBox27.Text = "6" 
      TextBox27.Focus() 
     End If 

End Select 
+0

是的嘗試,但我仍然有同樣的問題,如果我1型或2文本框作出響應,預期...但是如果我在任何類型lagrger比6 texbox劑量沒有反應.. –

+0

這是因爲' TextBox27.Text> =「7」'永遠不會是真的。該框只接受小於7的字符。您正在進行的文本比較評估字母順序。也許你應該將TextBox27.Text轉換爲一個整數,然後比較爲7(不帶引號。 – JerryM