如何使用MaskedTextBox防止用戶輸入無效的IP地址? (我希望它的行爲就像Windows一樣)。MaskedTextBox中的IP地址?
回答
試試這個:
IPAddress ipAddress;
if (IPAddress.TryParse(maskedTextBoxY.Text, out ipAddress))
{
//valid ip
}
else
{
//is not valid ip
}
注意:要使用它,您需要導入System.Net
命名空間:
using System.Net;
最好使用REGEX來驗證用戶輸入。這裏有一個例子:
string pattern = @"\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b";
string ip1 = "192.168.0.1";
string ip2 = "302.0.0.1";
Regex.IsMatch(ip1, pattern); // returns true
Regex.IsMatch(ip2, pattern); // returns false
比其他的答案簡單多了:
使用System.Net.IPAddress和System.Windows.Forms.MaskedTextBox
設置MaskedTextBox中的以下屬性:
MaskedTextBox.Mask = ###.###.###.###
MaskedTextBox.ValidatingType = typeof(System.Net.IPAddress);
每當文本框驗證時,引發事件MaskedTextBox.TypeValidationCompleted。 事件參數顯示如下:
- 輸入的文本是否可以作爲IP地址使用? (=確實System.Net.IPAddress.TryParse返回OK)的誤差的
- 說明作爲字符串
- 分析得到的值(= System.NET.IpAddress
- 類型分析得到的值中的一個對象。需要如果你有幾個MaskedTextBoxes不同的面具
在收到此事件,你可以決定是否使用該值或通知有什麼不對的價值用戶。
不工作。只適用於123.123.123.123 - 即所有字符存在。 「123.4.5.6」的IP地址將顯示爲「123.456 ..」 –
訂閱事件KeyDown,並在操作員按下點號/分號/逗號/右箭頭/選項卡等時以您希望成爲輸入的方式作出反應。 –
沒有針對此問題沒有複雜的解決方案然而,我認爲@HaraldDutch的答案是最接近的,但它是不是從空間字符的輸入prevet。 使用附加指令:
IPAdressBox.ResetOnSpace = false;
generaly解決的問題,但更復雜的是實現typewith解析方法的自定義數據。
public class IPValidator
{
public static IPValidator Parse(string input)
{
Regex regexpr = new Regex(@" ");
Match match = regexpr.Match(input);
if (match.Success)
return new IPValidator();
else throw new ArgumentException(input);
}
}
其中regexpr是驗證IP的特定表達式。之後,它可以用作驗證類型:
IPAdressBox.ValidatingType = typeof(IPValidator);
我做了一個IP掩碼的文本框,模仿Windows之一。
具有相同的寬度和高度,可以防止用戶輸入> 255的值,跳轉框等等。 如果您仍然需要它,並希望嘗試一下它在這裏:
https://github.com/RuvenSalamon/IP-MaskedTextBox
(我不知道這是否算作自我宣傳,但它是開源的,所以我估計它的確定)
- 1. 的IP地址
- 2. 檢索的IP地址與RKA IP地址的中間件
- 3. 如何用頁面中的IP地址替換IP地址中的IP地址(例如「國家,地區,城市」)
- 4. 在C#中相同LAN上的IP地址到MAC地址的IP地址
- 5. MAC地址和IP地址
- 6. 變換IP地址,IP地址範圍(起始IP - 結束IP)
- 7. 如何將IP地址解析爲Haskell中的IP地址?
- 8. Docker中的Rabbitmq IP地址和Redis IP地址
- 9. 確定iOS中IP地址的IP地址
- 10. 無法理解IP地址中的IP地址
- 11. 在PHP中的IP地址
- 12. HTTP_HOST中的IP地址
- 13. IP地址中「/」的含義
- 14. 本地IP地址?
- 15. IP地址
- 16. IP地址
- 17. php:geting ip地址
- 18. cURL IP地址
- 19. IP地址
- 20. ip地址
- 21. ejabberd ip地址
- 22. IP地址0.0.0.0
- 23. Recaptcha IP地址
- 24. 與IP地址
- 25. webview ip地址
- 26. 塊IP地址
- 27. 取IP地址
- 28. IP地址
- 29. sk_buff的IP地址
- 30. HREF的IP地址
爲什麼不只是讀取值並保存用戶的一些麻煩?永遠不要讓用戶做你能爲他們做的事情。 – Woot4Moo