C#关于子窗体与父窗体

good-code 2009-03-16 08:56:10
设置一个父窗体Form1,一个子窗体Form2,请问如何实现子窗体Form2在打开的时候一直都在父窗体Form1中显示?也就是让他一直都只局限于父窗体Form1的范围内咧?
(注:表述可能不那么清楚请各位见谅)
...全文
212 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
utopia54 2009-03-16
  • 打赏
  • 举报
回复
up
ya1li2shan3da4zhu 2009-03-16
  • 打赏
  • 举报
回复
做MDI,先在主窗体中设置属性ismdicontainer为true,然后创建form2窗体对象,对象点出mdiParent=this;
对象点show();完成
注意这里不能点成showDialog();这样会发生错误
gisyellow 2009-03-16
  • 打赏
  • 举报
回复
除了MDI的方式外,也可以将Form2的Parent设置为Form1,然后在form2的MouseMove事件中判断四个角的位置是否在Form1的范围内。。
liangyou_11 2009-03-16
  • 打赏
  • 举报
回复
3楼大哥太快了,正确
benjaminwu198818 2009-03-16
  • 打赏
  • 举报
回复

//写在父窗体(Form1)里面的代码(就这么一点)
this.IsMdiContainer = true;//指示窗体为多文档界面
Form2 f2 = new Form2();
f2.MdiParent = this;//指示父窗体
//f2.StartPosition = FormStartPosition.CenterParent;//可要可不要
f2.Show();
//百度、谷歌 一下 应该知道很多…
kongdelu2008 2009-03-16
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wuyi8808 的回复:]
C# codeusing System;
using System.Windows.Forms;

public class Form1 : Form
{
public Form1()
{
this.IsMdiContainer = true;
MenuStrip ms = new MenuStrip();
ToolStripMenuItem windowMenu = new ToolStripMenuItem("Window");
ToolStripMenuItem windowNewMenu = new ToolStripMenuItem("New", null, new EventHandler(windowNewMenu_Click));
windowMenu.…
[/Quote]

正解
kongdelu2008 2009-03-16
  • 打赏
  • 举报
回复
Form f = new Form();
f.MdiParent = this;
f.show();
这样就可以了
lchh0917 2009-03-16
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 barry_bai 的回复:]
父窗体的IsMdiContainer 属性设置为true,子窗体的MdiParent属性设置为父窗体
[/Quote]
已经很清楚了~
  • 打赏
  • 举报
回复
MDI
我姓区不姓区 2009-03-16
  • 打赏
  • 举报
回复
做成MDI不就行了?或者在Form1加个Panel,在Panel中加载Form2
深海之蓝 2009-03-16
  • 打赏
  • 举报
回复
三楼正解,子窗体的mdiparent属性 要在代码中声明
PandaIT 2009-03-16
  • 打赏
  • 举报
回复
楼主
学习msdn

学习使用baidu google

深海之蓝 2009-03-16
  • 打赏
  • 举报
回复
被3楼抢先了,三楼正解
wuyi8808 2009-03-16
  • 打赏
  • 举报
回复
using System;
using System.Windows.Forms;

public class Form1 : Form
{
public Form1()
{
this.IsMdiContainer = true;
MenuStrip ms = new MenuStrip();
ToolStripMenuItem windowMenu = new ToolStripMenuItem("Window");
ToolStripMenuItem windowNewMenu = new ToolStripMenuItem("New", null, new EventHandler(windowNewMenu_Click));
windowMenu.DropDownItems.Add(windowNewMenu);
((ToolStripDropDownMenu)(windowMenu.DropDown)).ShowImageMargin = false;
((ToolStripDropDownMenu)(windowMenu.DropDown)).ShowCheckMargin = true;
ms.MdiWindowListItem = windowMenu;
ms.Items.Add(windowMenu);
ms.Dock = DockStyle.Top;
this.MainMenuStrip = ms;
this.Controls.Add(ms);
}

void windowNewMenu_Click(object sender, EventArgs e)
{
Form f = new Form();
f.MdiParent = this;
f.Text = "Form - " + this.MdiChildren.Length.ToString();
f.Show();
}

static void Main()
{
Application.Run(new Form1());
}
}
barry_bai 2009-03-16
  • 打赏
  • 举报
回复
父窗体的IsMdiContainer 属性设置为true,子窗体的MdiParent属性设置为父窗体
wuyi8808 2009-03-16
  • 打赏
  • 举报
回复
MDI
good-code 2009-03-16
  • 打赏
  • 举报
回复
急求...

111,126

社区成员

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

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

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