1

基本上我正在创建一个允许用户输入值的程序,如果值超过一定数量,则禁用另一个表单上的按钮。但我不确定如何访问其按钮控件。我以为会是这样的?谢谢

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

4 回答 4

3

您的请求是禁用另一个表单上的按钮-从阅读中我假设该表单已经存在。通过创建一个新实例:

Form3 form3 = new Form3();

您正在创建一个新实例,Form3因此您永远不会禁用已经可见的表单上的按钮。

您必须让当前表单知道 的实例Form3才能更改那里的任何内容。以下是使它们交互的几种方法:

  • 将这些值存储在一个单独的对象中,并让您的表单通过事件对更改做出反应,例如
  • Form3在创建或Show()输入“this”表单时提供对实例的引用
  • 在静态类中保留对每个创建的表单的引用

另请记住,同时激活多个相关表单可能会使您的最终用户感到困惑。

于 2012-05-03T20:13:16.697 回答
1

您可以像这样禁用按钮:

otherForm.Button.Enabled = false;

为了能够从另一个上下文(表单)禁用此按钮,您需要将其声明为公共的。您可以按如下方式执行此操作:

  • 在设计视图中选择按钮
  • 在属性窗口中将修饰符设置为公共

然后您可以显示带有禁用按钮的表单,如下所示:

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 回答