2010-11-30 5 views
1

私はフィールドが空であるかどうかをチェックするこのような関数を持っています。空であれば、テキストボックスの横にsetErrorアイコンが表示されます。string.emptyとstring.isnullorempty

 private bool ValidateHost() 
     { 
     ErrorProvider errorProvider = new ErrorProvider(); 
     bool isValid = true; 

     //If the txtHost is empty, show a message to user    
     if(txtHost.Text == string.Empty) 
      { 
      errorProvider.SetError(txtHost, "Please enter the host address"); 
      isValid = false; 
      } 
     else 
      errorProvider.SetError(txtHost, string.Empty); 
     return isValid; 
     } 

が、私は文字列を使用しようとしたとき、isnulloremptyその後、私はSETERRORのアイコンを取得していないです... は、あなたたちはプラザ..このケースでstring.isnulloremptyを使用しての適切な方法が何であるかを教えてもらえます

+1

*あなたはどのように使用しましたか? if(string.IsNullOrEmpty(txtHost.Text))で完全にうまく動作するはずです。 –

+0

"seterrorアイコン"? – annakata

答えて

5

string.IsNullorEmpty()次のように呼び出された静的メソッド、次のとおりです。

if (string.IsNullOrEmpty(txtHost.Text)) 
{ 
    errorProvider.SetError(txtHost, "Please enter the host address"); 
    isValid = false; 
} 

スペース、タブなども無効である場合にも同様のstring.IsNullOrWhitespaceを考慮することができます。

0
はにあなたのIF条件を変更して

-

if(string.IsNullOrEmpty(txtHost.Text)) 
{ 
    ... 
} 
7

私の推測では、それはこのように、インスタンスメソッドであるかのようにあなたがそれを使用しようとした次のとおりです。

if (txtHost.Text.IsNullOrEmpty()) 

これは、インスタンスメソッドではありません - それはです静的メソッドは、あなたがこのようにそれを使用します。

if (string.IsNullOrEmpty(txtHost.Text)) 

これは、インスタンスメソッドではありませんそれ以外の場合は理由txtHost.Textがnullの場合、メソッド呼び出しではNullReferenceExceptionが返されます。これは避けようとしています。

nullに対応できる拡張方法を書いていますが、私が知る限りフレームワークには1つもありません。

+1

プラス1の理由だけでなく、どのように。 – StuperUser

0

これは彼が文字列テストにrealtedされていないことができますか?

ErrorProvider errorProvider = new ErrorProvider();

hmpf。真剣に。 ErrorProviderはフォーム上に存在する必要があります。あなたはちょうど1つのフライ(htheメソッドの最後に無効になります)で1つを作成しているだけで、それらのフォームに正しくフックアップしていません。

ErrorProviderをフォームに配置する必要があります。

関連する問題