Winform中怎样跨窗体获取另一窗体的控件对象

时间:2022-10-04 21:47:56

场景

Winform中实现跨窗体获取ZedGraph的ZedGraphControl控件对象:

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/101375325

之前写过使用存取全局对象的方式去跨窗体获取控件对象。

在主窗体中有一个ZedGraphControl控件,如果要在本窗体获取此控件对象则通过:

this.zedGraphControl1

其中zedGraphControl1是控件ZedGraphControl的name属性。

如果在另一个窗体中获取此控件对象并对其进行属性设置的话,正常逻辑是

声明主窗体对象main,然后main.zedGraphControl1去调用。

但是试过之后发现却不能对其属性进行更改。

因为每次new 出来是一个新的对象,并不是想获取的控件对象

注:

博客主页:
https://blog.csdn.net/badao_liumang_qizhi
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。

实现

现在要在FrmPDFOption这个窗体中获取MainViewContent这个窗体的zedGraph控件。

在MainViewContent窗体中,声明一个public的静态的当前窗体对象:

public static MainViewContent mainViewContent;

然后在MainViewContent的构造方法中将this即当前窗体对象赋值给上面的窗体对象:

public MainViewContent()
{
InitializeComponent();
mainViewContent = this;
}

然后在要调用当前MainViewContent的窗体中获取其控件:

System.Drawing.Image image = MainViewContent.mainViewContent.zedGraphControl1.GetImage();

这里是直接获取MainViewContent中zedGraphControl1的image对象。