2015-11-13 21 views
-3
using System;  
using System.Collections.Generic;  
using System.ComponentModel;  
using System.Data;  
using System.Drawing;  
using System.Linq;  
using System.Text;  
using System.Windows.Forms; 

namespace IP_HULK 
{ 

    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void textBox1_TextChanged(object sender, EventArgs e) 
     { 

     } 

     private void button1_Click(object sender, EventArgs e) 
     { 
      int n1, n2, n3, n4; 
      if (numbox1.Text == "" || numbox2.Text == "" || numbox3.Text == "" || numbox4.Text == "") 
      { 
       MessageBox.Show("el ip fadi"); 
      } 
      n1 = Convert.ToInt16(numbox1.Text); 
      n2 = Convert.ToInt16(numbox2.Text); 
      n3 = Convert.ToInt16(numbox3.Text); 
      n4 = Convert.ToInt16(numbox4.Text); 
      if ((n1 > 0 && n1 < 255) && (n2 > -1 && n2 < 255) && (n3 > -1 && n3 < 255) && (n4 > -1 && n4 < 255)) 
          MessageBox.Show("The IP is Valid"); 
         else 
          MessageBox.Show("The ip isn't valid"); 
     } 

     private void textBox1_TextChanged_1(object sender, EventArgs e) 
     { 

     } 

     private void numbox1_Leave(object sender, EventArgs e) 
     { 

     } 
    } 
} 

回答

1

您將需要使用else語句。你的邏輯說如果文本框是空的,顯示一條消息。一旦用戶關閉了MessageBox,程序將嘗試轉換文本框的值,無論它們是否爲空。

舉個例子:

int n1, n2, n3, n4; 
    if (numbox1.Text == "" || numbox2.Text == "" || numbox3.Text == "" || numbox4.Text == "") 
    { 
     MessageBox.Show("el ip fadi"); 
    } 
    else 
    { 
     n1 = Convert.ToInt16(numbox1.Text); 
     n2 = Convert.ToInt16(numbox2.Text); 
     n3 = Convert.ToInt16(numbox3.Text); 
     n4 = Convert.ToInt16(numbox4.Text); 
    } 

但是你最好不要分裂到這一點,將執行驗證你的方法。作爲附加說明可以使用int.TryParse而不是Convertstring.IsNullOrWhiteSpace,這可能更具可讀性。

if (string.IsNullOrWhiteSpace(numbox1.Text)) 
{ 

} 
+0

非常感謝你 –

0
int n1, n2, n3, n4; 
if (!Int32.TryParse(numbox1.Text, out n1) || !Int32.TryParse(numbox2.Text, out n2) || 
    !Int32.TryParse(numbox3.Text, out n3) || !Int32.TryParse(numbox4.Text, out n4)) 
{ 
    MessageBox.Show("el ip fadi"); 
    return; 
} 

使用TryParse代替,因爲這不會崩潰,如果無效輸入的數據。相反,它只是返回truefalse(並將「轉換的值」作爲參數out「返回」)。

此外,由於轉換值的其餘代碼與該方法的其餘部分「一致」,所以在您的MessageBox出現後,它會繼續執行。您可以將方法的其餘部分放在像Darren發佈的else塊中,或者在顯示MessageBox之後簡單地將return附上,就像我在此處所做的那樣。

此外,您沒有「留下一個文本框爲空」,您將它留空。 nullString.Empty不是是同樣的事情。

+0

謝謝你有用 –

相關問題