C#中父窗口和子窗口之间实现控件互操作

C#中父窗口和子窗口之间实现控件互操作,第1张

C#中父窗口和子窗口之间实现控件互操作,第2张

很多人担心如何在子窗体中操作主窗体上的控件,或者如何在主窗体中操作子窗体上的控件。相比较而言,后者要简单一点,只要在主窗体中创建子窗体时,保留已创建的子窗体对象即可。

下面重点讲前一个。目前常用的方法有两种,基本相似:

首先,在主窗体类中定义一个静态成员来保存当前的主窗体对象,例如:

public static yourMainWindow pCurrentWin = null;

然后在主窗体构造函数中,初始化静态成员,如下所示:

pCurrentWin = this

然后在子窗体中调用父窗体时,可以通过“主窗体类名”来操作当前主窗体。pCurrentWin”。

第二种是在子窗体中定义一个私有成员来保存当前的主窗体对象,例如:

private your main window pParentWin = null;

然后,在子窗体构造函数中,添加一个参数,如下所示:

public your child window(yourMainWindow WinMain)
{
pParentWin = WinMain;
//其他代码
}

在主窗体中创建子窗体时,应该使用this作为参数来构造子窗体,这样就可以直接使用“this.pParentWin”来调用子窗体中的父窗体。

但是上面只允许你访问当前的主窗体对象,那么如何操作控件呢?很多人直接修改控件的成员访问器,就是把“private”改成“public”。我觉得这样破坏了自己类的封装,所以我更倾向于添加公共属性或者方法进行调用,比如:

公共字符串button text
{
get { return BTN。文本;}
set{ btn。文本=值;}
}

public void Button _ Click()
{
this . btnd convert . perform Click();//执行按钮click
}

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » C#中父窗口和子窗口之间实现控件互操作

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情