【问题标题】:disabling a button on form 2 from form 1 with a checkbox使用复选框从表单 1 禁用表单 2 上的按钮
【发布时间】:2014-10-21 05:36:15
【问题描述】:

我有两个表单对象:form1form2

form2 上有 1 个按钮,form1 上有一个复选框。当复选框被选中时,我想显示按钮,当它未被选中时,我希望按钮被禁用。我知道在visual basic中我做了这样的事情:

form2.button.visible = false

我将如何在 c# 中做这样的事情?

【问题讨论】:

  • 在C#中基本相同。您会获得对表单的引用,然后访问相应的成员。在 VB 中,设计器为控件生成的字段默认为 Friend,而在 C# 中默认为 private。如果您希望它们可以从外部访问,则将它们声明为internal,相当于Friend。我宁愿在两种语言中都使用public 方法,但这取决于你。不同之处在于 C# 中没有默认实例。这意味着您需要在创建表单时保留对表单的引用,即将其分配给字段。
  • 为什么不把它作为答案@jmcilhinney
  • 能否提供一些代码。我一直在寻找答案一段时间了..
  • @TheQuickBrownFox,看看Thisguydontknow 你的评论?这就是我发布评论而不是答案的原因。

标签: c# vb.net visual-studio-2010 visual-studio c#-4.0


【解决方案1】:

一般情况(当Form1From2 实例是独立的时)你可以这样做。在Form2 中实现一个公共属性

  public partial class Form2 {
    ...
    public Boolean IsMyButtonVisible {
      get {
        return myButton.Visible;
      } 
      set {
         myButton.Visible = value; 
      } 
    } 
    ...
  }

Form1 上的myCheckBox CheckedChanged 中找出Form2 实例并分配属性

  public partial class Form1 {
    ...
    private void myCheckBox_CheckedChanged(object sender, EventArgs e) {
      foreach(Form f in Application.OpenForms) {
        Form2 form2 = f as Form2; 

        if (form2 != null)
          form2.IsMyButtonVisible = myCheckBox.Checked;
      }
    }
    ...
  } 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-28
    • 1970-01-01
    • 1970-01-01
    • 2014-02-19
    • 2011-11-21
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多