永发信息网

c#WinForm窗体限制只能打开一次

答案:6  悬赏:0  手机版
解决时间 2021-03-26 10:25
  • 提问者网友:寂寞撕碎了回忆
  • 2021-03-26 00:28
c#WinForm窗体限制只能打开一次
最佳答案
  • 五星知识达人网友:千夜
  • 2021-03-26 01:10
主窗体:(假设叫做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-03-26 03:36
子窗子加载事件中将session的值设为1,关闭时设为0,按钮事件先判断session的值
  • 2楼网友:你哪知我潦倒为你
  • 2021-03-26 03:14
将子窗体实例保存起来,在下次点击的时候检查是否为空就好了。
  • 3楼网友:山河有幸埋战骨
  • 2021-03-26 02:46
Form.ShowDialog()窗体只打开一次,但按钮不能再操作
如果允许按钮点击,设变量
bool IsSubFormOpened = false;
Form f ;
private void button2_Click(object sender, EventArgs e)
{
if (!IsSubFormOpened)
{
f = new Form();
f.Load += new EventHandler(f_Load);
f.FormClosed += new FormClosedEventHandler(f_FormClosed);
f.Show();
}
else
{
f.WindowState = FormWindowState.Normal;
}
}
void f_Load(object sender, EventArgs e)
{
IsSubFormOpened = true;
}
void f_FormClosed(object sender, FormClosedEventArgs e)
{
IsSubFormOpened = false;
}
  • 4楼网友:由着我着迷
  • 2021-03-26 02:02
不知道你用的是不是mdi窗体,如果是,我这里是这样解决的
下面这段代码是判断子窗体是否打开了
public bool checkchildFrmExist(string childFrmName)
{
foreach (Form childFrm in this.MdiChildren)
{
if (childFrm.Text.ToString() == childFrmName)
{
if (childFrm.WindowState == FormWindowState.Minimized)
{
childFrm.WindowState = FormWindowState.Normal;
}
childFrm.Activate();
return true;
}
}
return false;
}
打开子窗体代码
if (checkchildFrmExist("总生产单") == true) { return; }
Frm_总生产单 form1 = new Frm_总生产单();
form1.MdiParent = this;
form1.Show();
form1.WindowState = FormWindowState.Maximized;
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯