如果接收到「ffff」,則立即解析爲true並顯示消息框。我正在閱讀的方式是「如果從索引處開始(在代碼中早些時候初始化爲0)並且距離爲1(意味着它僅評估該單個字母)的文本不是AZ或az,那麼顯示此消息框。否則,退出此if語句」這個if語句有什麼問題?
爲什麼是不是出了什麼實際發生的?
If (txtPartNum.Text.Substring(index, 1) IsNot "[A-Z]" OrElse txtPartNum.Text.Substring(index, 1) IsNot "[a-z]") Then
MessageBox.Show("Error: Part number must contain two numbers followed by two letters. first")
blnValid = False
End If
編輯:我想切換到這一點,我沒有得到任何這方面的運氣,要麼
If (txtPartNum.Text.Substring(index, 1) Like "[!A-Z]" OrElse txtPartNum.Text.Substring(index, 1) Like "[!a-z]") Then
MessageBox.Show("Error: Part number must contain two numbers followed by two letters. first")
blnValid = False
End If
編輯2:我做了一個字符串來保存txtPartNum.Text.Substring(指數,1),並驗證它正在接收文本框中的第一個字母。我也嘗試刪除「!」在角色模式中,這對它是否解決問題沒有影響 - 它每次都是正確的。
因爲你在比較字符串;不匹配某種模式;使用MaskedTextBox來強制執行輸入規則可能是一個不錯的主意 – Sehnsucht
IsNot'不會爲你進行模式測試,如果它符合你的要求。使用正則表達式或'Char.IsLetter(txtPartNum.Text(0))' – Plutonix
您似乎已經將[IsNot](https://msdn.microsoft.com/en-us/library/t3bat82c.aspx)運算符與[Like](https://msdn.microsoft.com/en-us/library/swf8kaxw.aspx)運算符。 –