Form mdiChildForm = new Form(); private void Form1_Load(object sender, System.EventArgs e) { IsMdiContainer = true; mdiChildForm.MdiParent = this; }
我是想另弹出一个窗口,可以不用“IsMdiContainer”吗
窗体一 Public Class Form1 Dim f2 As New Form2 '退出按钮 Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click RaiseEvent Onclicks() End Sub Public Event Onclicks() '新建窗体按钮 Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click f2.MainForm = Me f2.MdiParent = Me f2.Show() End Sub End Class窗体二 Public Class Form2 Public WithEvents MainForm As Form1 Private Sub MainForm_OnClickButton() Handles MainForm.Onclicks Me.Hide() End Sub End Class
{
if (f.GetType().Name == "Form2")
{
f.Show();
f.Focus();
return;
}
}
Form2 f2 = new Form2();
f2.Show(this);
然后知道form的属性,比如位置,大小等等
然后指定新建窗体的父窗体
这样关闭父窗体子窗体就关闭了多次点击只新建一个的话那你就要查找有没有已经建立你要的窗体了
有的话就放到前面,没有的话就建立
或者是建立之后做个标志字符,然后检查该字符的值来判断
Form mdiChildForm = new Form(); private void Form1_Load(object sender, System.EventArgs e)
{
IsMdiContainer = true;
mdiChildForm.MdiParent = this;
}
Public Class Form1 Dim f2 As New Form2
'退出按钮
Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
RaiseEvent Onclicks()
End Sub Public Event Onclicks()
'新建窗体按钮
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
f2.MainForm = Me
f2.MdiParent = Me
f2.Show()
End Sub
End Class窗体二
Public Class Form2
Public WithEvents MainForm As Form1
Private Sub MainForm_OnClickButton() Handles MainForm.Onclicks
Me.Hide()
End Sub
End Class
private void Form1_Load(object sender, System.EventArgs e)
{
IsMdiContainer = true;//就这一句话
}
private void 新建_onclick(object sender, System.EventArgs e)
{
Form mdiChildForm = new Form();//子窗口
mdiChildForm.MdiParent = this;
mdiChildForm.show();
}完整代码给你写出
private Form2 frm;
private void button1_Click(object sender, EventArgs e)
{
if (frm==null||frm.IsDisposed)
{
frm = new Form2();
frm.Show();
}
} private void button2_Click(object sender, EventArgs e)
{
if (frm != null)
{
frm.Close();
}
}
Form myform = null;void create_Click(object sender,EventArgs e)
{
if(myform == null)
{
myform = new Form();
myform.Show();
}
}void close_Click(object sender,EventArgs e)
{
if(myform != null)
{
myform.Close();
myform = null;
}
}
private void Form1_Load(object sender, System.EventArgs e)
{
IsMdiContainer = true;//在有【新建】按钮的窗口中设置
}
Form mdiChildForm ;//声明子窗口对象
private void button1_Click(object sender, System.EventArgs e)
{
//子窗口只能打开一次
if (mdiChildForm == null || mdiChildForm .IsDisposed)
mdiChildForm = new Form();//子窗口
mdiChildForm.MdiParent = this;
mdiChildForm.show();}else{
mdiChildForm.Activate();//子窗口获取焦点
}
}
{
//检测是不是当前子窗体名称
if (childrenForm.Name == "子窗体名称")
{
//是的话就是把他显示
childrenForm.Visible = true;
//并激活该窗体
childrenForm.Activate();
return;
}
}
//打开子窗体
Form1 childrenForm = new Form1();
childrenForm.MdiParent = this;
childrenForm.Show();
childrenForm.WindowState = FormWindowState.Maximized;
private void ultraExplorerBar1_ItemClick(object sender, Infragistics.Win.UltraWinExplorerBar.ItemEventArgs e)
{
string formClass = "Checker." + e.Item.Key;
Type formType = Type.GetType(formClass);
if (null != formType)
{
bool IsInitForm = false;
Form newForm = null;
foreach (Form f in this.MdiChildren)
{
if (f.Name == e.Item.Key)
{
newForm = f;
IsInitForm = true;
break;
}
}
if (!IsInitForm)
{
newForm = Activator.CreateInstance(formType) as Form;
} if (null != newForm)
{
newForm.MdiParent = this;
newForm.Show();
newForm.Activate();
}
}
}
不明白问我
{
if (f.GetType().Name == "Form2")
{
f.Show();
f.Focus();
return;
}
}
Form2 f2 = new Form2();
f2.Show(this);
在父窗体 中 点击“新建”按钮事件中 添加:子窗体对象 UM = new Cothink_Form.User.子窗体对象 ();
foreach (Form frm in this.MdiChildren)//遍历已打开的MDI
{
if (frm.Name == UM.Name)
{
frm.Close();
}
}
UM.MdiParent = this;
UM.WindowState = FormWindowState.Maximized;
UM.Show();
Form2 mfrmSub=null;
//创建
private void cmdNew_Click ( object sender , EventArgs e )
{
if ( null==mfrmSub || mfrmSub.IsDispose() )
{
mfrmSub=new Form2();
}
mfrmSub.Show(this);
}
//退出
private void cmdClose_Click ( object sender , EventArgs e )
{
if ( null!=mfrmSub )
{
mfrmSub .Close(); }
}