C#中关于子类窗口重复打开的问题

来源:百度知道 编辑:UC知道 时间:2024/06/03 17:24:55
就是在MDI窗口中打开子窗口,我需要实现的功能是相同的子窗口只能打开一次,不能同时打开相同的子窗口,附加一个小问题就是怎么在登录页面上输完密码,点回车,就直接登录,不用客意点登录按扭,希望回答者写的简洁易懂,有加分的

窗体有个属性AcceotButton你把它关联到,你的控件就可以了,关于窗体代开问题,你可以家判断,如果本窗体已经打开,则不能再次打开
foreach (Form. childrenForm. in this.MdiChildren)
{
//检测是不是当前子窗体名称
if (childrenForm.Name == "子窗体名称")
{
//是的话就是把他显示
childrenForm.Visible = true;
//并激活该窗体
childrenForm.Activate();
return;
}
}
或者
frmPurvey frmp = new frmPurvey();//创建要打开的窗体对象
bool isOpen = true;
foreach (Form. frm in this.MdiChildren)//遍历已打开的MDI
{
if (frm.Name == frmp.Name)
{
frmp.Activate();//赋予焦点
frmp.WindowState = FormWindowState.Maximized;//设置窗体最大化
isOpen = false;
break;
}
}
if (isOpen)//如果没有找到相同窗体则打开新窗体
{
frmp.MdiParent = this;//设置父窗体
frmp.Show();

MDI子窗口创建static静态对象 这样才能保证每次实例化的都是同一对象
否则 每次都是新建一个子窗体打开了

form属性中加上 defaultbutton="btnSubmit"

先说回车的问题吧,每一个FORM都有一个acceptButton属性,你在这属性上设置事件设置直接登录事件就行了,你看下属性就明白了
子窗口只打开一次,你用form.showdialog()方法,这方法要求必须处理好了当前窗口才能回到原