1

基本的に、ユーザーが値を入力できるようにするプログラムを作成し、値が特定の量を超えると、別のフォームにあったボタンを無効にします。しかし、ボタンコントロールにアクセスする方法がわかりません。こんなものかと思った?ありがとう

 if(value>120)
 {
  Form3 form3 = new Form3();
  Button.Disable();
  this.close();
 }
4

4 に答える 4

3

あなたの要求は、別のフォームにあったボタンを無効にすることです-フォームが既に存在すると想定していることを読んでください。新しいインスタンスを作成することにより:

Form3 form3 = new Form3();

の新しいインスタンスを作成しているForm3ため、既に表示されているフォームのボタンを無効にすることはありません。

そこで何かを変更できるようにするには、現在のフォームに のインスタンスを認識させる必要があります。Form3それらを相互作用させるいくつかの方法を次に示します。

  • これらの値を別のオブジェクトに保存し、フォームがイベントを通じて変更に反応するようにします。
  • 「この」フォームForm3を作成または ing する際のインスタンスへの参照を提供しますShow()
  • 作成された各フォームへの参照を静的クラスに保持する

また、関連する複数のフォームを同時にアクティブにすると、エンド ユーザーが混乱する可能性があることに注意してください。

于 2012-05-03T20:13:16.697 に答える
1

次のようにボタンを無効にできます。

otherForm.Button.Enabled = false;

このボタンを別のコンテキスト (フォーム) から無効にするには、それを public として宣言する必要があります。これは次のように行うことができます。

  • デザイン ビューでのボタンの選択
  • プロパティ ウィンドウでModifiersPublicに設定します。

次に、次のように、ボタンが無効になっているフォームを表示できます。

var newForm = new Form3();
newForm.Button.Enabled = false;
newForm.Show();
于 2012-05-03T20:13:38.040 に答える
1

Form3のインスタンスへの参照が必要です。Form3 の新しいインスタンスを作成していますが、これはおそらくあなたが望んでいたものではありません。次に、Form3 は、関心のあるボタンをパブリック プロパティとして公開して、クラスの外部からアクセスできるようにする必要があります。その後、Disabled プロパティを true に設定できるはずです。

于 2012-05-03T20:13:45.023 に答える
0

このようなことをしなければならないと思います。

アップデート

 if(value>120)
 {
 Form3 form3 = new Form3();
 form3.Button.Enabled = false;
 this.close();
 }

アップデート

于 2012-05-03T20:10:59.910 に答える