我认为我在这个网站上已经彻底找到了答案,但不幸的是我没有找到任何答案,或者我只是在看它时很糟糕。
我有2个表单和1个控制器类以及1个模型类或数据类。另外,ControllerClass
有一个模型类的数组。
在Form1
中,我像这样引用了控制器:
ControllerClass control = new ControllerClass();
在Form2
中,我想引用ControllerClass
中提及的Form1
。
到目前为止,我一直在做类似的事情:
ControllerClass control = new ControllerClass();
Form2
中的,但这只会制作ControllerClass
的新副本,这对我没有多大帮助。
那么如何使用ControllerClass
中Form1
中实例化的Form2
?
答案 0 :(得分:0)
如果您只需要一个类中的单个对象,则可以使用单例。 然后,你将永远拥有相同的对象。
有几种方法可以将控件实现为单例
这里有一些例子: http://csharpindepth.com/articles/general/singleton.aspx
对于C#,我更喜欢嵌套版本。
答案 1 :(得分:-1)
如果您不想通过构造函数(Communicate between two windows forms in C#)将对象传递给其他表单,正如其他人在此处所建议的那样,您可以在Form1中使用静态对象。
例如,您可以声明
public static ControllerClass control = new ControllerClass();
然后访问对象,如:
ControllerClass temp = Form1.control;
您还可以创建第二个静态类,它将具有ControllerClass对象(该类应位于同一名称空间而不是Form1类中),如下所示:
public static class ControllerStaticClass
{
public static ControllerClass control = new ControllerClass();
}
然后您可以访问ControllerClass对象,如:
ControllerClass temp = ControllerStaticClass.control;