

現在、Visual StudioのWindows Forms (C#) でプログラムを作成しています。  
作成したいプログラムとしては、  
・コンボボックスで選択肢から1つ選ぶ  
→テキストボックスに数字を入力する  
→ボタンを押す  
です。

◆実現したいこと  
2つの項目に関して、どちらか一方でもNullであった場合にボタンを押せないようにする  
（全て入力済でないと、ボタンを押せないようにする）  
項目は、1つはコンボボックス、もう1つはテキストボックスです

◆伺いたいこと  
上記の機能は実現可能か  
実現可能であるならば、どのようなコードを書くことで実装できるのか

まだまだC#の初心者ですが、よろしくお願いいたします。


CC BY-SA 4.0
2021-05-24T01:37:22.050
76035
2021-05-24T08:03:28.350
2021-05-24T06:17:27.450
15413
45474
question
c# visual-studio winforms
Windows Forms (C#) での開発において、項目がnullであった場合にボタンを押せないようにする挙動について


こんな風に考えられます。

  * 要望のとおりに押せないようにする

    * 初期状態ではButton.Enabled=falseとする
    * ComboBoxとTextBoxの両方のTextChangedイベントにイベントハンドラを登録する
    * それらのイベントハンドラでは、両方のコントロールのTextプロパティが有効なデータかどうかの判定(IsNullOrEmpty/IsNullOrWhiteSpace)を行い、両方とも有効なデータだった場合にButton.Enabled=trueとする。どちらか一方でも無効なデータだった場合はButton.Enabled=falseとする。
  * 押せるが動作しないようにする

    * Buttonのclickイベントのイベントハンドラの先頭で、ComboBoxとTextBoxの両方のTextプロパティが有効なデータかどうかの判定を行い、両方とも有効なデータだった場合にButton押下時の処理を行う。どちらか一方でも無効なデータだった場合は処理は行わず、警告/ガイド表示等を行ってイベントハンドラを終了する。


CC BY-SA 4.0
2021-05-24T08:03:28.350
76040
2021-05-24T08:03:28.350
26370
76035
answer