2014-11-09 44 views
2

我需要隱藏提交,但是如果在驗證中有任何錯誤。我正在使用下面的代碼,如果我輸入了兩個帶有字符的文本框,並且如果我更正了文本框中的提交按鈕,就會看到!如何避免它util所有的錯誤是明確的? 謝謝如果驗證中有任何錯誤,請禁用提交按鈕

int num; 

private void textBox5_TextChanged(object sender, EventArgs e) 
{ 
    bool isNum = int.TryParse(textBox5.Text.Trim(), out num); 
    if (!isNum) 
    { 
     button2.Visible = false; 
     errorProvider1.SetError(this.textBox5, "Please enter numbers"); 
    } 
    else 
    { 
     button2.Visible = true; 
     errorProvider1.SetError(this.textBox5, ""); 
    } 
} 

private void textBox6_TextChanged(object sender, EventArgs e) 
{ 
    bool isNum = int.TryParse(textBox6.Text.Trim(), out num); 
    if (!isNum) 
    { 
     button2.Visible = false; 
     errorProvider2.SetError(this.textBox6, "Please enter numbers"); 
    } 
    else 
    { 
     button2.Visible = true; 
     errorProvider2.SetError(this.textBox6, ""); 
    } 
} 

回答

1

檢查兩個文本框按鈕可視性設置爲True前無差錯。您可以使用另一種方法,如下所示,使用UpdateSubmitButton

該方法檢查textBox5textBox6是否存在與其相關的錯誤,然後相應地更新button2的可見性。請注意,我從TextChanged事件中刪除了其他分配,並將其替換爲對UpdateSubmitButton方法的調用。

private void UpdateSubmitButton() 
{ 
    if (String.IsNullOrEmpty(errorProvider1.GetError) && 
     String.IsNullOrEmpty(errorProvider2.GetError)) 
    { 
     button2.Visible = true; 
    } 
    else 
    { 
     button2.Visible = false; 
    } 
} 

private void textBox5_TextChanged(object sender, EventArgs e) 
{ 
    int num; 
    bool isNum = int.TryParse(textBox5.Text.Trim(), out num); 
    if (!isNum) 
    { 
     errorProvider1.SetError(this.textBox5, "Please enter numbers"); 
    } 
    else 
    { 
     errorProvider1.SetError(this.textBox5, ""); 
    } 
    UpdateSubmitButton(); 
} 

private void textBox6_TextChanged(object sender, EventArgs e) 
{ 
    int num; 
    bool isNum = int.TryParse(textBox6.Text.Trim(), out num); 
    if (!isNum) 
    { 
     errorProvider2.SetError(this.textBox6, "Please enter numbers"); 
    } 
    else 
    { 
     errorProvider2.SetError(this.textBox6, ""); 
    } 
    UpdateSubmitButton(); 
} 
+0

「System.Windows.Forms.TextBox」不包含「GetError」和沒有擴展方法定義的所有TextChanged事件的這種方法「GetError」接受第一可以找到'System.Windows.Forms.TextBox'類型的參數 – JIMMY 2014-11-09 07:31:35

0

根據您驗證文本框的數量,你可以創建一個一次性驗證一切功能。

bool ValidateAll(){ 
    bool isNum = int.TryParse(textBox5.Text.Trim(), out num); 
    if (!isNum) 
    { 
     return false; 
    } 

    isNum = int.TryParse(textBox6.Text.Trim(), out num); 
    if (!isNum) 
    { 
     return false; 
    } 
    return true; 
} 

然後調用要監視

相關問題