C# WinForm ShowDialog 两次
privatevoidsubmitForm_Activated(objectsender,EventArgse){loginFormsf=loginForm.getLog...
private void submitForm_Activated(object sender, EventArgs e)
{
loginForm sf = loginForm.getLoginForm(3);//窗体离开时间超过3秒进行验证,loginForm内处理。
sf.ShowDialog();//标记1
}//标记2
调试的时候怎么看着从标记1到标记2,然后会再一次到标记1?
3秒后激活窗体,结果主窗体不显示,显示弹出窗,在任务栏点主窗体后,就会弹出两个sf,但是一个sf是另一个的字窗体,下图:
两个loginForm并不都是最后一个的字窗体 展开
{
loginForm sf = loginForm.getLoginForm(3);//窗体离开时间超过3秒进行验证,loginForm内处理。
sf.ShowDialog();//标记1
}//标记2
调试的时候怎么看着从标记1到标记2,然后会再一次到标记1?
3秒后激活窗体,结果主窗体不显示,显示弹出窗,在任务栏点主窗体后,就会弹出两个sf,但是一个sf是另一个的字窗体,下图:
两个loginForm并不都是最后一个的字窗体 展开
展开全部
具体问题出现在哪里这些代码是看不出来的,不过根据这些代码我给出一个解决方案,试试看吧,也不一定能解决你的问题:
loginForm sf =new loginForm();//在方法外面声明一个登录框
private void submitForm_Activated(object sender, EventArgs e)
{
sf.close();//进入此方法就执行下关闭,如果能判断该窗体是显示还是关闭状态的话就加个判断:如果是打开状态再执行关闭
sf= loginForm.getLoginForm(3);//窗体离开时间超过3秒进行验证,loginForm内处理。
sf.ShowDialog();//标记1
}//标记2
loginForm sf =new loginForm();//在方法外面声明一个登录框
private void submitForm_Activated(object sender, EventArgs e)
{
sf.close();//进入此方法就执行下关闭,如果能判断该窗体是显示还是关闭状态的话就加个判断:如果是打开状态再执行关闭
sf= loginForm.getLoginForm(3);//窗体离开时间超过3秒进行验证,loginForm内处理。
sf.ShowDialog();//标记1
}//标记2
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
以下两种方式可以用show的方法打开新窗体,并且在关闭的时候不释放
(一)
protected override void OnClosing(CancelEventArgs e)
{
e.Cancel = true;
this.Hide();
}
(二)
protected override void Dispose(bool disposing)
{
//if (disposing && (components != null))
//{
//components.Dispose();
//}
//base.Dispose(disposing);
Hide();
}
(一)
protected override void OnClosing(CancelEventArgs e)
{
e.Cancel = true;
this.Hide();
}
(二)
protected override void Dispose(bool disposing)
{
//if (disposing && (components != null))
//{
//components.Dispose();
//}
//base.Dispose(disposing);
Hide();
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你这个写法有问题,还有你需要在弹出窗体之前先进行判断,是否窗口已开,showdialog()是有返回值的,你可以设个断点查看下!具体的还是要你自己进行debug才能找出来!
更多追问追答
追问
在其他地方没有使用过 loginForm.ShowDialog() ,怎么还需要判断?showdialog()返回值我不需要,就是一个登陆窗体,在loginForm里面判断,如果登陆过就会自己Dispose() 。
追答
窗体初始化时,会自动将主窗体激活,一般会同时激活窗体事件,当你鼠标点击时会再次激发!还有按道理说窗体弹出后会无法点击主窗体,但你有延时操作,so......不知道是不是这个给你带来困扰?具体的还要细心分析!
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
private void submitForm_Activated(object sender, EventArgs e)
{
loginForm sf = loginForm.getLoginForm(3);//窗体离开时间超过3秒进行验证,loginForm内处理。
sf.ShowDialog();//标记1
}//标记2
调试的时候怎么看着从标记1到标记2,然后会再一次到标记1?
3秒后激活窗体,结果主窗体不显示,显示弹出窗,在任务栏点主窗体后,就会弹出两个sf,但是一个sf是另一个的字窗体,下图:问题补充:
两个loginForm并不都是最后一个的字窗体
{
loginForm sf = loginForm.getLoginForm(3);//窗体离开时间超过3秒进行验证,loginForm内处理。
sf.ShowDialog();//标记1
}//标记2
调试的时候怎么看着从标记1到标记2,然后会再一次到标记1?
3秒后激活窗体,结果主窗体不显示,显示弹出窗,在任务栏点主窗体后,就会弹出两个sf,但是一个sf是另一个的字窗体,下图:问题补充:
两个loginForm并不都是最后一个的字窗体
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询