winform窗体获得焦点事件
在窗体A获得焦点时,判断窗体B的必须项,如果为空弹出msg,返回画面B
代码如下
public Boolean bolActive = true;
private void formA_Activated(object sender, EventArgs e)
{
if (bolActive)
{
if (string.IsNullOrEmpty(formB.txt1.Text))
{
bolActive = false;
MessageBox.Show("123");
frmB.BringToFront();
}
}
}
问题是如果鼠标点击窗体A的标题栏,formA_Activated事件会运行两次,弹出两次msg,而点击窗体A的客户区就没问题,求教为什么?有什么好的解决办法?
------解决方案--------------------先把public Boolean bolActive = false; 设置为false,然后根据如下代码:
foreach (DockContent form in formsDockPanel.Contents)
{
if (form is formB)
{
form.Activate();
bolActive = true;
return;
}