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)
{
}
}
}
-3
A
回答
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
而不是Convert
和string.IsNullOrWhiteSpace
,這可能更具可讀性。
if (string.IsNullOrWhiteSpace(numbox1.Text))
{
}
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
代替,因爲這不會崩潰,如果無效輸入的數據。相反,它只是返回true
或false
(並將「轉換的值」作爲參數out
「返回」)。
此外,由於轉換值的其餘代碼與該方法的其餘部分「一致」,所以在您的MessageBox
出現後,它會繼續執行。您可以將方法的其餘部分放在像Darren發佈的else
塊中,或者在顯示MessageBox
之後簡單地將return
附上,就像我在此處所做的那樣。
此外,您沒有「留下一個文本框爲空」,您將它留空。 null
和String.Empty
是不是是同樣的事情。
+0
謝謝你有用 –
相關問題
- 1. 防止引導程序崩潰崩潰
- 2. 防止應用程序崩潰,當我打開多任務
- 3. 如何防止FolderBrowserDialog崩潰?
- 4. NSKeyedUnarchiver - 如何防止崩潰
- 5. 如何防止我的應用程序崩潰?
- 6. 如何防止calloc失敗導致我的程序崩潰?
- 7. 如何防止WiFi連接丟失時應用程序崩潰
- 8. 如何防止未找到引用的程序集時崩潰?
- 9. 如何防止點擊時Bootsrap崩潰?
- 10. 防止應用程序崩潰
- 11. 如何防止DateTimePicker Valuechanged事件從文本框離開事件
- 12. 當文本框中沒有編號時,C#程序崩潰
- 13. 程序崩潰,空文本字段
- 14. 如何防止C程序崩潰所造成的外部程序
- 15. 在丟失焦點時防止文本框離開事件
- 16. 防止Express.js崩潰
- 17. C#防止DataGridView離開
- 18. Java XML DOM:防止崩潰空元素
- 19. 如何防止CRT錯誤的進程崩潰C++
- 20. 當用戶在運行時弄亂文件時,我該如何防止我的桌面應用程序崩潰?
- 21. Python,Tkinter:我如何防止使用線程tkinter gui mainloop崩潰
- 22. 防止按鍵離開應用程序
- 23. 如何防止EXC_BAD_ACCESS崩潰應用程序?
- 24. 如何防止應用程序/遊戲在恢復後崩潰
- 25. 如何處理異常並防止崩潰應用程序
- 26. 如何防止iPhone應用程序突然關閉或崩潰?
- 27. 如何防止插件中的崩潰影響主程序(dlopen)
- 28. 開始時應用程序崩潰 - 如何獲取崩潰轉儲文件?
- 29. 如何防止在排序時崩潰jqgrid
- 30. 如何防止PhoneGap應用程序遠離本地文件?
非常感謝你 –