2016-07-30 10 views
2

フォームの読み込み時に無効になるようにボタンをコーディングしようとしましたが、テキストボックスにテキストが入力されると有効になりました。私のコードは、おそらく馴染みのある、以下の通りです:テキストボックスが設定されている場合にボタンを有効にする

Public Form() 
{ 
    InitializeComponent(); 
    this.button1.enabled = false; 
} 

private void textbox_TextChanged (object sender, EventArgs e) 
{ 
button1.Enabled = !string.IsNullOrWhiteSpace(textbox.Text); 
} 

ボタンが実際に無効をアップロードし、有効にする機能は、テキスト入力時には動作しませんし、私は問題は何ができるかわかりません。それはモーダルな形です。イベントリスナーが必要なのかどうか疑問に思っていました。

+1

button1のEnabledプロパティを設定します。イベントが正しく発生するかどうかを確認してください。起動されていない場合は、デザイナーでイベントハンドラを設定していない可能性があります。 – Han

+0

この行をしました 'button1.Enabled =!string.IsNullOrWhiteSpace(textbox.Text);'何かエラーを投げますか? –

答えて

2

Designer.csファイルを確認し、そこにイベントハンドラが登録されていることを確認してください。このような何か:

this.textBox.TextChanged += new System.EventHandler(this.textBox_TextChanged); 
+0

こんにちは、ありがとうございます。ハンドラの登録を追加しようとしましたが、「フォームに定義が含まれていません...」というエラーが表示されます。それが価値あるものであれば、イベントハンドラを別のテキストボックスに追加することができ、ボタンを有効にする機能は完全に機能しました。 – emvy03

+0

謝罪、それは私の愚かな間違いでした...私はtextbox_TextChangedイベントを最初に宣言していませんでした。すべて今働いている。あなたの助けをありがとう! – emvy03

1

これは機能しますか?私は本当にあなたのコードに問題は見えません...

button1.Enabled = textbox.Text != ""; 

私はこれが役立ちます。

0

あなたはJITコンパイラを聞かせて、少なくとも場合(この

private void Form1_Load(object sender, EventArgs e) 
{ 
    button1.Enabled = false; 
} 

private void textBox1_TextChanged(object sender, EventArgs e) 
{ 
    if (string.IsNullOrEmpty(textBox1.Text)) 
    { 
     button1.Enabled = true; 
    } 
} 
1

はあなたの問題への解決策ではないかもしれないが、これは実行するために自分のコンピュータのための最速のチェックになりますしてみてください)あなたのコードを最適化:

button1.Enabled = textbox.Text.Length > 0; 
0

あなたはTextBoxTextChanged性質上、次のいずれかを試みることができる:

private void textBox1_TextChanged(object sender, EventArgs e) 
{ 
    if (textbox.Text.Length > 0) 
    { 
     button1.Enabled = true; 
    } 
    else 
     button1.Enabled = false; 
} 

または、string.IsNullOrEmpty方法使用:その後、おそらく、それはあなたのために動作しなかった場合、またはエラーを取得している場合

button1.Enabled = !string.IsNullOrWhiteSpace(textbox.Text); 

private void textBox1_TextChanged(object sender, EventArgs e) 
{ 
    if (!string.IsNullOrEmpty(textbox.Text)) 
    { 
     button1.Enabled = true; 
    } 
    else 
     button1.Enabled = false; 
} 

以下の行をIsNullOrWhiteSpaceメソッドが.NET 4に導入されたためです。

関連する問題