我有一個Windows窗體應用程序與3個文本框,如果第一個文本框中的文本是0,其他兩個文本框設置爲只讀,如果1,只有最後一個文本框是隻讀的,如果是2,所有文本框都是可編輯的。C#文本框只讀依賴於其他文本
我的代碼工作,但如果我輸入一個值,然後改變它的程序崩潰,我該如何解決這個問題?
這裏是我的第一個文本框(NumberOfTusks)的代碼,它根據值更改(Tusk1Length)和(Tusk2Length)的只讀屬性。
private void NumberOfTuskstxt_TextChanged(object sender, EventArgs e)
{
if (int.Parse(NumberOfTuskstxt.Text) == 0)
{
Tusk1Lengthtxt.Text = "N/A";
Tusk1Lengthtxt.ReadOnly = true;
Tusk2Lengthtxt.Text = "N/A";
Tusk2Lengthtxt.ReadOnly = true;
}
else if (int.Parse(NumberOfTuskstxt.Text) == 1)
{
Tusk1Lengthtxt.Text = "";
Tusk1Lengthtxt.ReadOnly = false;
Tusk2Lengthtxt.Text = "N/A";
Tusk2Lengthtxt.ReadOnly = true;
}
else
{
Tusk1Lengthtxt.Text = "";
Tusk1Lengthtxt.ReadOnly = false;
Tusk2Lengthtxt.Text = "";
Tusk2Lengthtxt.ReadOnly = false;
}
}
如果我輸入1到NumberOfTusks然後將值更改爲2,代碼崩潰,並給了我這個「」類型的未處理的異常「System.FormatException」出現在mscorlib.dll「」 崩潰發生在我打退格後。我該如何解決這個問題,如果我改變它的值不會崩潰?
您是否將其更改爲數字以外的內容?這肯定會導致你的問題。你至少應該使用'int.TryParse'而不是假設你的輸入每次都是一個整數。 –
輸入保持爲int。它會崩潰,如果我從1更改爲2. –
不,您的評論是錯誤的。輸入不保留int。您正在刪除過程中的某個角色,因此在將輸入設置爲2之前,它已成爲'「」'。 –