我有这个战舰计划,我试图以另一种形式访问一个功能。此功能用于将游戏板上的按钮更改为启用或禁用,具体取决于轮到谁。将按钮更改为启用和禁用不是我的问题。我的问题是访问函数以其他形式执行此操作。我会发布代码,但它很长并且在三种形式之间传播。
感谢任何帮助!
提前致谢!
路
答案 0 :(得分:4)
为什么不将功能拉出到自己的公共类中(比如ButtonConfigurator或类似的东西)。然后任何表单都可以保存ButtonConfigurator对象并使用它。
答案 1 :(得分:3)
这取决于您的代码架构:
粗略的一种:如果您只有几种形式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.
}
更好的:声明在所有表单事件Dispatcher之间共享。因此,当Form1
想要通知某些人Form2
时,它会调用Dispatchers relative方法,该方法会在Form2
上调用正确的方法
可能有很多其他解决方案或多或少更好,但它在很大程度上取决于您的应用程序架构。在这里,我只想说出你可能有的几个选择。
希望这会有所帮助。 问候。
答案 2 :(得分:0)
您需要将带有Button的表单实例传递给您调用该函数的表单,使该函数公开。
答案 3 :(得分:0)
假设您有一个Form
form1,其中包含方法method1
,您希望在Form
form2中访问该表单。您可以将该方法声明为public static
。这样您就可以访问form1.method1
。