5

form2にテキストボックスとボタンがあります。form1でアイテムをクリックすると、form2が表示されます。テキストボックスが空のときにform2のボタンを無効にしておきたいのですが、ユーザーが入力を開始したときにボタンを有効にします。

initialisecomponent()の後にコンストラクターでifを使用しようとしましたが、機能しません。

if(textbox1.text != "")
{
   btnOne.Enabled = true;
}

checkText()また、do-whileループを使用して次のようにチェックする初期化コンポーネントの後に呼び出されるメソッドを呼び出してみました。

do{
    btnOne.Enabled = true
  }
 while(textbox1.text != "");

誰か助けてもらえますか?

4

3 に答える 3

8

イベントを使用する必要があります。コントロールのTextChangedイベントを確認してくださいTextBox

基本的に、次のようなものが必要になります。

private void textbox1_TextChanged(object sender, EventArgs e)
{
    btnOne.Enabled = !string.IsNullOrEmpty(textbox1.Text);
}

Visual Studioを使用している場合は、次の手順を実行してイベントコードを追加できます。

  • デザイナービューを開く
  • TextBoxコントロールを選択します
  • 「イベント」ウィンドウを表示する
  • 「TextChanged」イベントを検索します
  • 値のスペースをダブルクリックすると、コードが自動的に追加されて作業できるようになります

TextBox:このアプローチでは、イベントが発生する前に、ユーザーがコントロールに「フォーカスを失う」必要があります。タイプどおりのソリューションが必要な場合は、代わりにKeyUpイベントを確認してください

@Asifは、空白文字のチェックに関しても良い点を示しています。これは有効なものに対する呼び出しですが、空白値の使用を許可したくない場合は、代わりにIsNullOrWhiteSpaceメソッドを使用できます。ただし、これには.NetFramework4.0以降を使用する必要があります。

于 2012-10-26T10:24:29.177 に答える
0

WindowsフォームでTextboxの変更されたイベントを使用する

于 2012-10-26T10:28:32.950 に答える
0

有効な入力として空白を許可しない場合は、 string.IsNullOrWhiteSpaceの代わりにを使用する必要がありstring.IsNullOrEmptyます。

textbox1.TextChanged += (sender, e)
{
    btnOne.Enabled = !string.IsNullOrWhiteSpace(textbox1.Text);
};
于 2012-10-26T10:29:48.160 に答える