winform中怎么在panel中动态添加panel

winform中怎么在panel中动态添加panel,第1张

// 先new一个Panel控件出来

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、在一个子页面修改数据,另一个页面应该也有更新,怎么办好呢? 希望有知道的朋友给我一些提示。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11612631.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存