【问题标题】:Calling Methods from seperate usercontrols in the same form以相同的形式从不同的用户控件调用方法
【发布时间】:2010-07-07 20:04:30
【问题描述】:

我真的不知道给这个问题起什么名字。

假设我有一个 Windows 窗体应用程序。 GUI 非常复杂,需要两个自定义用户控件,“LeftSide”和“Rightside”,每个控件都由各种按钮、标签,甚至可能是另一个自定义用户控件组成。

我的问题:

我在“右侧”控件的范围内。如何从“左侧”控件调用方法?

我正在使用 Visual Studio 2008。

【问题讨论】:

    标签: c# winforms methods call


    【解决方案1】:

    最简单的解决方案是在RightSide 类型的LeftSide 控件上创建一个属性,然后在表单设计器中将其设置为LeftSide 实例。

    然后您可以调用该属性的公共方法。

    但是,这是糟糕的设计。
    每个用户控件应该是一个独立的块,不需要直接与其他用户控件交互。

    你应该考虑重组你的表单。

    【讨论】:

    • 后续问题:我能否将有问题的方法从“左侧”移动到父表单本身,这样“左侧”和“右侧”都可以调用该方法?
    • @Raven:是的。使其成为公共方法,然后写((MyParentFormClass)FindForm()).SomeMethod()
    【解决方案2】:

    与标准 WF 控件完全等效:如何使一个文本框的文本与另一个文本框保持同步:

        private void textBox1_TextChanged(object sender, EventArgs e) {
            textBox2.Text = textBox1.Text;
        }
    

    必要成分:用户控件上的一个事件,当有趣的事情发生时触发。和公共财产。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-24
      • 1970-01-01
      • 2012-08-11
      • 1970-01-01
      • 2013-08-30
      • 1970-01-01
      相关资源
      最近更新 更多