テキストボックスにインターネットを使用した検証なしでIPアドレスのみを許可しようとしています。私は仕事をする "私的な空のtextBox3_TextChanged"か "timer1_Tick"を持っています。私が入力するか、それが刻々と変化するたびに、それが有効かどうかをチェックします。だからこそ私はそれが高速で、単純なローカルコードを使って、それが有効かどうか、つまり0.0.0.0 - 255.255.255.255をチェックするだけです。テキストボックスは、テキストボックス内のIPアドレスのみを許可します。C#
まず、何もするべきではありませんが、ipが書き込まれると、ipが到達可能かどうかを確認するタイマーが起動します。この目標は、IPが書き込まれたときに、約4秒後にIPに到達できない場合にピクチャボックスが赤くなり、到達可能な場合は緑色になり、「textbox3_TextChanged」まで停止します。
I pingのようなものを試してみましたが、何も入力されたんやIPが到達しなかった場合、それが遅れた場合には、クラッシュした:ここで
private void timer1_Tick(object sender, EventArgs e)
{
Ping pingSender = new Ping();
PingOptions options = new PingOptions();
options.DontFragment = false;
// Create a buffer of 32 bytes of data to be transmitted.
string data = "ping";
byte[] buffer = Encoding.ASCII.GetBytes(data);
int timeout = 120;
PingReply reply = pingSender.Send(textBox3.Text, timeout, buffer, options);
if (reply.Status == IPStatus.Success)
{
pictureBox4.BackColor = Color.LimeGreen;
}
else
pictureBox4.BackColor = Color.Red;
}
はスクリーンショットです:http://imgur.com/Cvix2Tr
あなたがしようとすることができます:)
あなたがチェックし、入力したユーザのために全体のIPを待たなければならないかもしれフォーマットの妥当性と到達可能性のために。これはクラッシュを避けるでしょう。遅れは、通常の方法で、pingメソッドがipに到達できないことがわかる方法です。 –
'textBox'の' KeyDown'イベントを使用して、ENTERが押されているかどうかを確認してから、あなたのチェックをしてください。 –
すべてのコードをtry catchブロック内に入れてください。 –