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アドレスとして受け入れられますか?ストリング
- として解析された値(誤差の
- 説明(= OKを返すSystem.Net.IPAddress.TryParseない)= 可能System.Net.IPAddress
- 解析された値の型のオブジェクト。必要あなたがこのイベントを受信すると、異なるマスク
を持ついくつかのMaskedTextBoxesを持っている場合は、値を使用するか、値が間違っているものをユーザに通知するかどうかを決定することができます。
123.123.123.123のためだけに機能します。すべての文字が存在します。 IPアドレス「123.4.5.6」は「123.456 ..」と表示されます。 –
イベントKeyDownに登録し、オペレータがドット/セミコロン/カンマ/右矢印/タブなどを押した場合の入力方法に反応します。 –
この質問には、複雑な解決策はありませんまだ@HaraldDutchの答えは一番近いと思いますが、それは空白文字で入力からprevetしないでください。 追加の命令の使用:
IPAdressBox.ResetOnSpace = false;
generaly解決される問題を、より多くの複合体は、Parseメソッド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を検証する特定の表現です。その後、ValidatingTypeとして使用することができます:
IPAdressBox.ValidatingType = typeof(IPValidator);
私はWindowsのものを模倣したIPマスクされたテキストボックスを作成しました。
同じ幅、高さを持ち、ユーザーが> 255値を入力したり、ジャンプボックスなどを使用しないようにします。 あなたはまだそれを必要とし、それはここにそれを試してみたい場合:(。これは自己PRとしてカウントしている場合は、私は知りませんが、それはので、私はそれは大丈夫だ数えるオープンソースです)
- 1. Kubernetes - サービスクラスターのIPアドレスとPodのIPアドレス
- 2. MACアドレスとIPアドレス
- 3. IPアドレス
- 4. IPアドレス
- 5. IPアドレスへの物理アドレス
- 6. ログクライアントのIPアドレス
- 7. そのIPアドレス
- 8. SilverlightのIPアドレス
- 9. 取得IPアドレス
- 10. リモートIPアドレス
- 11. 取得IPアドレス
- 12. IPアドレスが
- 13. IPアドレスから
- 14. AzureサービスファブリックアウトバウンドIPアドレス
- 15. IPアドレス127.0.0.1
- 16. Azure VM IPアドレス
- 17. aspnet_Membership IPアドレス
- 18. IPアドレス - MySQLデータタイプ
- 19. IPアドレスが
- 20. IPアドレスAWS
- 21. IPアドレスが
- 22. インクリメントIPアドレス
- 23. ブロックIPアドレス
- 24. TYPO3ブロックIPアドレス
- 25. モバイルIPアドレス
- 26. AndroidタブレットIPアドレス
- 27. ウェブサイト/ウェブサーバーアウトバウンドIPアドレス
- 28. IPアドレス? - ココア
- 29. jmeterリモートテスト - IPアドレス
- 30. IPアドレスが
なぜ値を読み込んでユーザーに何らかのトラブルを避けるのはなぜですか?ユーザーがあなたのためにできることを決してしないでください。 – Woot4Moo