以另一种形式访问函数 - C#

时间:2011-07-16 20:21:38

标签: c# forms function

我有这个战舰计划,我试图以另一种形式访问一个功能。此功能用于将游戏板上的按钮更改为启用或禁用,具体取决于轮到谁。将按钮更改为启用和禁用不是我的问题。我的问题是访问函数以其他形式执行此操作。我会发布代码,但它很长并且在三种形式之间传播。

感谢任何帮助!

提前致谢!

4 个答案:

答案 0 :(得分:4)

为什么不将功能拉出到自己的公共类中(比如ButtonConfigurator或类似的东西)。然后任何表单都可以保存ButtonConfigurator对象并使用它。

答案 1 :(得分:3)

这取决于您的代码架构:

  1. 粗略的一种:如果您只有几种形式Form _form1, Form2 _form2,您可以在它们之间创建一种关系,通过只是一个示例伪代码

    public class Form1:Form 
    {
        Form2 _form2Object = null;
    
        public Form1(Form2 frm2) 
        {
            _form2Object = frm2;
        }
    
        //and after when needed just use that _form2Object to call a mehod on it.
    }
    
  2. 更好的:声明在所有表单事件Dispatcher之间共享。因此,当Form1想要通知某些人Form2时,它会调用Dispatchers relative方法,该方法会在Form2上调用正确的方法

  3. 可能有很多其他解决方案或多或少更好,但它在很大程度上取决于您的应用程序架构。在这里,我只想说出你可能有的几个选择。

    希望这会有所帮助。 问候。

答案 2 :(得分:0)

您需要将带有Button的表单实例传递给您调用该函数的表单,使该函数公开。

答案 3 :(得分:0)

假设您有一个Form form1,其中包含方法method1,您希望在Form form2中访问该表单。您可以将该方法声明为public static。这样您就可以访问form1.method1

之类的方法