窗体显示

lchh0917 2008-11-26 02:14:06
问个菜菜问题,在父窗体点击按钮显示子窗体,用Show()(不是ShowDialog())怎么控制按钮使子窗体不重复显示。
...全文
105 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
lchh0917 2008-11-26
  • 打赏
  • 举报
回复
谢谢帮忙~楼上各位
sjm2003 2008-11-26
  • 打赏
  • 举报
回复
非MDI窗体打开不重复:

private void btn_Click(object sender, EventArgs e)
{
if (Fuseredit == null || Fuseredit.IsDisposed)//如果该窗体为空或者被释放了
{
Fuseredit = new FUserEdit(this);//新建该窗体
Fuseredit.Show();//SHOW
BoundForm(Fuseredit);//绑定窗口弹出位置
}
else
{
Fuseredit.Focus();//否则该窗体获得焦点
}
}
private void BoundForm(Form f)//绑定窗体
{
int i = int.Parse (Application.OpenForms.Count.ToString());
Rectangle rect = new Rectangle(this.Width, 30*i, f.Width, f.Height);
f.Bounds = rect;
}

MDI子窗体不重复
http://blog.csdn.net/tjvictor/archive/2007/01/18/1486420.aspx
http://www.chinancre.com.cn/two/C/fudao/200811/5400.html
sharp_future 2008-11-26
  • 打赏
  • 举报
回复
先定义类:
public class SingleForm
{
private static YourForm _YourForm;
public static YourForm GetYourForm
{
set{ _YourForm=value;}
get{ return _YourForm;}
}
}

而后在事件中添加下面代码:

if(SingleForm.GetYourForm==null) // 第一次初始化
{
YourForm frm=new YourForm();
SingleForm.GetYourForm=frm;
frm.MdiParent=this;
frm.Show();
else
{
SingleForm.GetYourForm.Activate();
}
长沙三毛 2008-11-26
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 hulihui 的回复:]
在当前窗体设置一个子窗体的字段为 subForm(子窗体类为SubForm)
button1_Click(..)
{
if(subForm == null)
{
SubForm subForm = new SubForm();
subForm.Show();
}
}
[/Quote]

else
{
subForm.Show();
}
sjm2003 2008-11-26
  • 打赏
  • 举报
回复
呵呵,是在帮你节省时间和分数,等人回答是要时间的,有快的方法为何不用!
长沙三毛 2008-11-26
  • 打赏
  • 举报
回复
在当前窗体设置一个子窗体的字段为 subForm(子窗体类为SubForm)
button1_Click(..)
{
if(subForm == null)
{
SubForm subForm = new SubForm();
subForm.Show();
}
}
lchh0917 2008-11-26
  • 打赏
  • 举报
回复
嫌问题简单?相关问题是别人问的,自己问了才会理解
bloodish 2008-11-26
  • 打赏
  • 举报
回复
单件模式


public partial class Form1 : Form
{
private void button1_Click(object sender, EventArgs e)
{
Form2.ShowChildForm();
}
}



public partial class Form2 : Form
{
private static Form2 formInstance;

public static Form2 Instance
{
get
{
if(formInstance == null)
{
formInstance = new Form2();
}
return formInstance;
}

}

public static void ShowChildForm()
{
if(!Instance.Visible)
{
Instance.Show();
}
}
}
sjm2003 2008-11-26
  • 打赏
  • 举报
回复
你提问时,下面没有相关问题吗?
lchh0917 2008-11-26
  • 打赏
  • 举报
回复
单件模式?不了解,能具体说说吗
heyu1000 2008-11-26
  • 打赏
  • 举报
回复
子窗体用一个单件模式

110,532

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧