子窗体如何获取父窗体信息

有一个主窗体:MainForm,上面有一个Name为btnShow的按钮和Name为lbInfo的Label控件,它的Text为“Hello”。单击btnShow就会弹出名为chdForm的子窗体ExercisePlan,且ExercisePlan以非模态对话框的形式弹出(即chdForm.Show()),子窗体上有n个TextBox控件个名分别为txtFlighPlanIndex和txtStartTime_FPL等等。我先让txtStartTime_FPL获取焦点,然后点击主窗体的lbInfo控件,此时lbInfo的Text就会赋值到txtStartTime_FPL中,我想通过计算机来自动判断我在子窗体中是哪个控件获取焦点,然后再决定将lbInfo的Text赋值给哪个控件?刚才的描述就是计算机知道txtStartTime_FPL获取焦点了,所以将lbInfo的Text就会赋值到txtStartTime_FPL中。下面的例子将以两个TextBox来实现如何在该TextBox获取焦点然后点击主窗体的lbInfo,此时TextBox失去焦点,同时lbInfo的Text值也赋值给该刚失去焦点的TextBox。

在子窗体中的代码:

/// <summary> /// 用于记录哪个TextBox失去了焦点,以便在点击主窗体的时候将获得的Text值赋给刚失去 /// 焦点的TextBox /// </summary> private Control ctrlLostFocus=null; public ExercisePlan(MainForm parent) { this.Owner=parent; InitializeComponent(); //注册事件处理函数 ((MainForm)this.Owner).lbInfo.Click+=lbInfo_Clicked; ((TextBox)this.txtFlighPlanIndex).LostFocus+=TextBox_LostFocus; ((TextBox)this.txtStartTime_FPL).LostFocus+=TextBox_LostFocus; } 

/// <summary> /// 响应主窗体的lbInfo的Click事件,与子窗体的TextBox的LostFocus事件配合 /// 即在TextBox_LostFocus事件处理函数中获取刚失去焦点的TextBox并保存在ctrlLostFocus中,然后再在该 /// plbInfo_Clicked事件处理函数中获取刚失去焦点的TextBox——ctrlLostFocus并给它的Text赋值 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void lbInfo_Clicked(object sender,EventArgs e) { if (this.ctrlLostFocus!=null) { TextBox edit=ctrlLostFocus as TextBox; edit.Text=lbInfo.Text; this.ctrlLostFocus=null; } } /// <summary> /// 响应TextBox的LostFocus事件,将刚失去焦点的TextBox保存在ctrlLostFocus中,以便在lbInfo_Clicked事件处理函数中获取该控件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void TextBox_LostFocus(object sender, EventArgs e) { ctrlLostFocus=sender as Control; }

这样便能完成从主窗体获取信息并赋值给子窗体的控件,其它情况可以以该方法作为参考 

转载于:https://www.cnblogs.com/wackelbh/archive/2010/12/11/1984040.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值