asp textbox 是有焦点,点击button按钮提交, textbox 却不不执行失去焦点事件

图片说明
正确流程是:当所在单位的文本框失去焦点时会查到该单位的id然后后台获取这个id,
但现在有这样一种情况,文本框还没有失去焦点,直接去点击注册,这样会导致id获取不到,在后台进行数据转换时就会出错了

在父窗口中订阅 Form.MdiChildActivate Event。

Occurs when a multiple-document interface (MDI) child form is activated or closed within an MDI application.

You can use this event to perform tasks such as updating the contents of the MDI child form and changing the menu options available in the MDI parent form based on the status of the MDI child form that is activated.

以上来自msdn:
http://msdn.microsoft.com/en-us/library/system.windows.forms.form.mdichildactivate.aspx

用mdi 窗体就行了,打开父窗体会自动显示 子窗体的名字

如果你不用mdi,也可以在子窗体的Form_Load里面写
(this.Owner as Form).Text = this.Text;

我是这样解决的,在主窗体加timer1控件,使用主窗体的.ActiveMdiChild方法,获取,当前主窗体内处于活动状态的子窗体

private void timer1_Tick(object sender, EventArgs e)
{
if (this.ActiveMdiChild != null)
{
lblOptionInfo.Text = this.ActiveMdiChild.Text;
}
else
{
lblOptionInfo.Text = "就绪";
}

    }

这样好处是,只要主窗体,写就行了

或者 放到 Mdide MdiChildActivate,该事件时在多文档界面 (MDI) 应用程序内激活或关闭 MDI 子窗体时发生。

private void MainForm_MdiChildActivate(object sender, EventArgs e)
{
if (this.ActiveMdiChild != null)
{
lblOptionInfo.Text = this.ActiveMdiChild.Text;
}
else
{
lblOptionInfo.Text = "就绪";
}
}

例如:
MainForm 菜单栏中有N个Button 点击一个Button弹出个子窗体
我的理解及解决方案:
方案:MainForm 某一处放一个Label ,当Button点击事件发生时,使用MessageBox 提示, 如果需要 此时将 子窗体的Text 更新到Label
代码如下:
private void button_Click(object sender, EventArgs e)
{
ChildForm form = new ChildForm();
form.ShowDialog();
MessageBox.Show("打开了{0}窗体", form.Text);
label.text=form.Text;

    }