永发信息网

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;
}
全部回答
  • 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了!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯