点击一个控件 弹出一个窗体
在点击它 又出一个同样的窗体
现在要同一个窗体只能显示一个
C#如何禁止重复显示同一个窗体
答案:6 悬赏:10 手机版
解决时间 2021-12-25 12:00
- 提问者网友:星軌
- 2021-12-25 07:22
最佳答案
- 五星知识达人网友:行雁书
- 2021-12-25 08:07
主窗体:(假设叫做Form1)
public static Form2 f2;//声明窗体类静态变量
private void Button1_Click(object sender, EventArgs e)
{
if (f2 == null)
{
f2 = new Form2();//将主窗体对象传递过去
f2.Show();//显示窗体二
}
else
{
f2.Activate();
}
}
Form2子窗体:
//子窗体的关闭事件
private void Form2_FormClosing(object sender, FormClosingEventArgs e)
{
Form1.f2 = null;
}
public static Form2 f2;//声明窗体类静态变量
private void Button1_Click(object sender, EventArgs e)
{
if (f2 == null)
{
f2 = new Form2();//将主窗体对象传递过去
f2.Show();//显示窗体二
}
else
{
f2.Activate();
}
}
Form2子窗体:
//子窗体的关闭事件
private void Form2_FormClosing(object sender, FormClosingEventArgs e)
{
Form1.f2 = null;
}
全部回答
- 1楼网友:妄饮晩冬酒
- 2021-12-25 11:06
你在点击的时候 判断一下你点击的窗体是否处于显示状态就哦了呗
- 2楼网友:从此江山别
- 2021-12-25 10:37
比如一个label前后两个不同,那么你在构造函数中传一个参数,将它传给label.text面板上的属性么一样...
如果只有一个按钮的话建议你写2个方法
然后设置一个bool类型的标示暂且将它命名为flage
当flage等于true时按钮点击事件执行一个方法,如果等于false的时候执行另外一个
这个flage也通过构造函数传进来....不过这只适用于简单的窗体。。太复杂了还是建议你复制一个然后改动下。。。
- 3楼网友:玩家
- 2021-12-25 09:50
frm.showdialog();
//如此来,在这个窗口未关闭之前,休想再次打开其他
//简单明了,接分!
- 4楼网友:话散在刀尖上
- 2021-12-25 09:36
1把那个winform做成模态的 没有点确定or取消不能做别的
2winform Form1_Load()里判断上一个是不是还在 在就message。show(“以存在”);然后返回or退出
- 5楼网友:渡鹤影
- 2021-12-25 08:54
假定:你的窗体名称为:Form1
foreach (Form form in this.MdiChildren)
{
if (form.GetType() == typeof(Form1))
{
form.Focus();
return;
}
}
Form1 f = new Form1();
f.MdiParent = this;
f.Show();
这样就OK了!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯