C#中父窗口和子窗口之间实现控件互操作
来源:互联网 发布:js base64转换成file 编辑:程序博客网 时间:2024/06/05 12:42
C#中父窗口和子窗口之间实现控件互操作
最近老是让我们做一个仿照xp里记事本的小程序,其中有个查找和替换的功能,需要在查找和替换的窗口对主窗体的richtextbox空间进行操作,这就要涉及到父窗口和子窗口之间实现控件互操作,如何在子窗体中操作主窗体上的控件,或者在主窗体中操作子窗体上的控件。相比较而言,后面稍微简单一些,只要在主窗体中创建子窗体的时候,保留所创建子窗体对象即可。
下面重点介绍前一种,目前常见的有两种方法,基本上大同小异 :
第一种,在主窗体类中定义一个静态成员,来保存当前主窗体对象,例如:
public static yourMainWindow pCurrentWin = null;
然后在主窗体构造函数中,给静态成员初始化,如下:
pCurrentWin = this;
那么在子窗体中调用父窗体,可以通过“主窗体类名. pCurrentWin”来操作当前的主窗体。
第二种,是在子窗体中定义一个私有成员,来保存当前主窗体对象,例如:
在编辑中,点击查找替换的窗口会弹出查找替换的对话框,此时需要在替换和查找窗口对主窗口中的richtextbox进行相应的操作.
private void 查找ToolStripMenuItem_Click(object sender, EventArgs e)
{
this.searchForm = new SearchAndReplace(this); this.searchForm.Show();
//这里实例化了子窗体的对象,并在实例化的过程中调用了自己写的子窗体的构造函数,并且把当前的窗体(主窗体作为参数传给)
子窗体(searchFrom)的构造函数
this.AddOwnedForm(this.searchForm);
//给主窗体添加一个附属窗体即searchForm
private Form1 parentForm = null;
然后在子窗体构造函数中,加一参数,如下:
public SearchAndReplace(Form1 parent)
{
InitializeComponent();
this.parentForm = parent;
}
在主窗体创建子窗体的时候,要把this作为参数来构造子窗体,这样在子窗体中调用父窗体,可以直接用“this. parentForm ”就可以了
不过以上所作的,只是让你能够访问当前主窗体对象,那么如何操作控件,很多人直接修改控件的成员访问符,即把“private”改为“public”!
- C#中父窗口和子窗口之间实现控件互操作
- C#中父窗口和子窗口之间实现控件互操作
- C#中父窗口和子窗口之间实现控件互操作
- C#中父窗口和子窗口之间实现控件互操作
- c#中父窗口和子窗口之间实现控件互操作
- C#中父窗口和子窗口之间实现控件互操作
- C#中父窗口和子窗口之间实现控件互操作
- C#中父窗口和子窗口之间实现控件互操作
- C#中父窗口和子窗口之间实现控件互操作
- C#中父窗口和子窗口之间控件互操作实例
- C#父窗口和其他窗口之间实现控件互操作
- c#父窗口 和子窗口 互操作
- c#父窗口 和子窗口 互操作
- C#子窗口调用父窗口控件的委托实现
- C#子窗口调用父窗口控件的委托实现
- C#子窗口调用父窗口控件的委托实现
- JavaScript-父窗口与子窗口之间的互操作
- 子窗口和父窗口之间杂谈
- SQL 连接查询(内链接----外连接)
- Symbian Thread and Process 进程和线程
- linux-crontab 命令
- 用Ftrace跟踪内核模块
- 一个简单问题的遗传算法的实现
- C#中父窗口和子窗口之间实现控件互操作
- 用getch实现控制
- HttpServletRequest接口的getSession方法
- Ubuntu开启root用户及其它登录问题的解决
- 【WM】Phone Canvas重复创建视图的原因
- Ubuntu 10.04 安装配置手记
- [OE]IIS配置全能空间
- 难受
- C++ 语言特性的性能分析 之 影响性能的因素