2 gr ay Gr_ay 于 2014.11.17 15:06 提问

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

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

8个回答

findcaiyzh
findcaiyzh   Rxr 2014.11.18 10:03
已采纳

在父窗口中订阅 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

devmiao
devmiao   Ds   Rxr 2014.11.18 15:55

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

happy09li
happy09li   Ds   Rxr 2014.11.18 12:35

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

Gr_ay
Gr_ay   2014.11.25 10:21

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

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

    }
Gr_ay
Gr_ay 这个方法就是,有点延迟
3 年多之前 回复
Gr_ay
Gr_ay   2014.11.25 10:23

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

Gr_ay
Gr_ay   2014.11.25 10:52

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

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

Gr_ay
Gr_ay 个人感觉这个方法还是不错的
3 年多之前 回复
Gr_ay
Gr_ay   2014.11.25 10:52

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

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

kkx62839739
kkx62839739   2014.12.03 11:43

例如:
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;

    }
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!