窗体显示 问个菜菜问题,在父窗体点击按钮显示子窗体,用Show()(不是ShowDialog())怎么控制按钮使子窗体不重复显示。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 单件模式 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(); } } } 在当前窗体设置一个子窗体的字段为 subForm(子窗体类为SubForm)button1_Click(..){ if(subForm == null) { SubForm subForm = new SubForm(); subForm.Show(); }} 加else{ subForm.Show();} 先定义类: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(); } 非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.aspxhttp://www.chinancre.com.cn/two/C/fudao/200811/5400.html 今天终于有分了, 再发一贴向大家请教, 可能用正则来做会简单和高效一些. C#中 "[]"的作用 c#和asp。net的区别 不知道大家发现了TreeView的Bug没有? webBrowser1控件内的一个简单问题? c#开发、oracle数据库:同一条sql的执行结果竟然不同?? 在c#中创建web应用程序出错 请教一下字符串替换的算法问题? 编写一个四则运算程序 请问哪里有C#的函数介绍下载,另外急切要知道将十进字符转为十六进制的函数是什么。 关于打印的问题 一个按钮注册了多个方法,想在第一个方法中控制直接退出整个事件怎么解决?
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();
}
}
}
button1_Click(..)
{
if(subForm == null)
{
SubForm subForm = new SubForm();
subForm.Show();
}
}
else
{
subForm.Show();
}
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();
}
{
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