场景
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对象。