基本的に、ユーザーが値を入力できるようにするプログラムを作成し、値が特定の量を超えると、別のフォームにあったボタンを無効にします。しかし、ボタンコントロールにアクセスする方法がわかりません。こんなものかと思った?ありがとう
if(value>120)
{
Form3 form3 = new Form3();
Button.Disable();
this.close();
}
あなたの要求は、別のフォームにあったボタンを無効にすることです-フォームが既に存在すると想定していることを読んでください。新しいインスタンスを作成することにより:
Form3 form3 = new Form3();
の新しいインスタンスを作成しているForm3
ため、既に表示されているフォームのボタンを無効にすることはありません。
そこで何かを変更できるようにするには、現在のフォームに のインスタンスを認識させる必要があります。Form3
それらを相互作用させるいくつかの方法を次に示します。
Form3
を作成または ing する際のインスタンスへの参照を提供しますShow()
また、関連する複数のフォームを同時にアクティブにすると、エンド ユーザーが混乱する可能性があることに注意してください。
次のようにボタンを無効にできます。
otherForm.Button.Enabled = false;
このボタンを別のコンテキスト (フォーム) から無効にするには、それを public として宣言する必要があります。これは次のように行うことができます。
次に、次のように、ボタンが無効になっているフォームを表示できます。
var newForm = new Form3();
newForm.Button.Enabled = false;
newForm.Show();
Form3のインスタンスへの参照が必要です。Form3 の新しいインスタンスを作成していますが、これはおそらくあなたが望んでいたものではありません。次に、Form3 は、関心のあるボタンをパブリック プロパティとして公開して、クラスの外部からアクセスできるようにする必要があります。その後、Disabled プロパティを true に設定できるはずです。
このようなことをしなければならないと思います。
アップデート
if(value>120)
{
Form3 form3 = new Form3();
form3.Button.Enabled = false;
this.close();
}
アップデート