如何从不同形式的现有引用对象中引用?

时间:2013-10-12 09:34:32

标签: c# winforms

我认为我在这个网站上已经彻底找到了答案,但不幸的是我没有找到任何答案,或者我只是在看它时很糟糕。

我有2个表单和1个控制器类以及1个模型类或数据类。另外,ControllerClass有一个模型类的数组。

Form1中,我像这样引用了控制器:

ControllerClass control = new ControllerClass();

Form2中,我想引用ControllerClass中提及的Form1

到目前为止,我一直在做类似的事情:

ControllerClass control = new ControllerClass();
Form2中的

,但这只会制作ControllerClass的新副本,这对我没有多大帮助。

那么如何使用ControllerClassForm1中实例化的Form2

2 个答案:

答案 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;