Panel panel = new Panel()
//设置 这个新Panel的属性
panel.Width=100// 宽度
panel.Height=100// 高度
panel.Location = new Point(0,0)// 相对于左上角的位置
。。。。各种属性
// 将这个新的panel添加到Panel父窗口中
p1.Controls.Add(panel)
新建一个窗体Form1,在设置Form1的属性IsMdiContainer 的属性为true,在Form1上面放置一个button按钮,然后在新建一个Form2,在Button单击事件里面写上代码:
private void button1_Click_1(object sender, EventArgs e)
{
Form2 f2 = new Form2()
f2.MdiParent = this
f2.Show()
}
你看你要的是这种效果吗
2、在工具箱中双击ToolStrip,给这个页面增加一个菜单条。点击菜单条上的图标让你选择控件类型(一般选择按钮)。选完一个再选一个 3、在项目中添加两个页面,缺省名称为Form1、Form2。 4、在主页面中,双击菜单条上第一个按钮,在其事件里写如下几行: string childrenFormText = "Form1"if (!ShowChildrenForm(childrenFormText)) { Form1 frm = new Form1()frm.MdiParent = thisfrm.Show()} 5、同理单击第二个按钮,写入相同的程序(注意把Form1改成Form2)。 6、在后再加一个新的方法 //check children form exist or not. if exists, active //maybe we can check the form type, instead of text private bool ShowChildrenForm(string childrenFormText) { int ifor (i = 0i <this.MdiChildren.Lengthi++) { //MessageBox.Show(this.MdiChildren[i].Text)if (this.MdiChildren[i].Text == childrenFormText) { this.MdiChildren[i].Activate()this.MdiChildren[i].WindowState = FormWindowState.Maximizedreturn true} //else { // this.MdiChildren[i].Hide()//} } return false} 7、运行一下看看: [后记]我在这里遇到了几个问题: 1、子窗口默认打开时最大化,刚打开时页面上部有一部分在父窗口的菜单条下显示不出来(好像位置往上串了),点击别的窗口,再点击原来的那个就好了。我说明白了吗?就是第一次点击时屏幕有跳动,显示内容不完全,子窗口顶部没露出来,多点击次就好了。也许在页面Load事件里,数据运算量太大了,如果没有数据连接,效果会好很多。 2、在一个子页面修改数据,另一个页面应该也有更新,怎么办好呢? 希望有知道的朋友给我一些提示。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)