2017-05-22 14 views
0

私はこのエラー・コードをerrorproviderに持っています。しかし、有効な入力が与えられたときはいつでもその値はクリアされません。ユーザー入力が有効なときにエラー・プロバイダ・メッセージをクリアする際にエラーが発生しました

public void NotEmpty(Control c) 
{ 
    ErrorProvider err = new ErrorProvider(); 
    if (c.Text != String.Empty) 
    { 
     err.Clear(); 
     //err.SetError(c, ""); 
    } 
    else if(c.Text == String.Empty) err.SetError(c, "Field cannot be empty"); 
} 

private void btnNext_Click(object sender, EventArgs e) 
{ 
    NotEmpty(tbName); 
} 

ここで確認したリンクがいくつかありますが、それは私の場合は効果がありませんでした。

https://stackoverflow.com/questions/17570654/clear-error-provider-message-when-user-input-change-to-valid

https://stackoverflow.com/questions/3858888/problem-with-errorprovider-clear

https://social.msdn.microsoft.com/Forums/en-US/be59f63e-234a-4d62-8f05-317d1887f5c0/errorprovider-how-can-i-remove-errorprovider-icon-when-error-is-corrected?forum=winforms

フィールドが最初に満たされている場合は、エラーメッセージをもたらすことはありませんが、その(フィールド)をクリアし、再び満たされた場合、それはしませんクリアエラーメッセージ。

+0

おそらく新しいerrorproviderを作成していて、古いものがまだ周囲に潜んでいます。あなたは古いものではなく新しいものをクリアしています – BugFinder

+0

これは完全に@BugFinderで動作しました。クラスそのものにerrorproviderをインスタンス化します。 – Kinyo356

答えて

0

bindingSourceを見てください。たぶん役立つかもしれません。

関連する問題