今天在做项目时候遇到一个问题,窗体分为左右两部分,要求在左边栏点击按钮时,右边动态加载窗体最后想到用panel实现,经历几次失败,并查找资料后,终于搞定 说明:如果多次切换需加入 panel.clear();清空原有panel内容环境:C# VS2008 方法一:通过给panel加载子元素实现 Form2 form = new Form2(); form.FormBorderStyle = FormBorderStyle.None; //隐藏子窗体边框(去除最小花,最大化,关闭等按钮) form…
最近开始了一个winform项目,原先一直都是web项目.遇到个问题,就是在框架内,左侧和中间的main都是用panel来实现的form,就是把form窗体打开到panel里,实现左侧是导航,中间是操作区域的效果.中间区域要想控制左侧导航或者顶部导航都是困难的,因为这时没有激活左侧窗体,操作顶部相对容易,因为顶部是父窗体,子窗体操作父窗体的例子很多,百度一下.我之前也写过一篇:winform打开子窗体后,在子窗体中刷新父窗体,或者关闭子窗体刷新父窗体. 同样是子窗体相互操作起来挺困难,可以通过设…
1.主窗体多线程给子窗体传值 解决方案:主要使用委托,因为会出现跨线程错误 主窗体 public FormMain() { InitializeComponent(); //background thread running Action sAction = async () => await CallbackWorkItem(); System.Threading.Tasks.Task task = System.Threading.Tasks.Task.Run(sAction); Syste…
/// <summary> /// 嵌入子窗体,判断子窗体是否打开了 /// </summary> public static Form1 f; public void Form1Show() { if (f == null || f.IsDisposed) { f = new Form1 { WindowState = FormWindowState.Maximized, FormBorderStyle = FormBorderStyle.None, TopLevel = fal…
原理:利用委托和事件,本文将以图文并茂的例子讲述,告诉我们So Easy ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 一.窗体展示 首先我们看到是一个父窗体和…
private void ZiChuangTi() {//确认当前为子窗体 this.IsMdiContainer = true; //建立个子窗体的对象 Son mySon = new Son(); //确认当前为父窗体 mySon.MdiParent = this; //修改子窗体的属性 //mySon.Dock = DockStyle.Fill; //以当前的Panel 为打开界面 mySon.Parent = panel1; mySon.Show(); } 两个窗体  son为子窗体  …
在父窗体里定义委托 public delegate void inis(string str); 在父窗体中定义要调用的方法 public void inigs(string gs) { textBox1.Text = gs; } 在new窗体的时候传递委托  (我这里form4是父窗体 form5是子窗体) inis i = new inis(inigs); Form5 f5 = new Form5(i); f5.Show(); 在新窗体中接收 Form4.inis ii; List<stri…
    Delphi中实现MDI子窗体 用MDI实现浏览子窗口,具有窗口管理功能,同屏观看多个网页的内容  ① 多文档窗体(MDI) MDI窗体是一种具有主子结构的窗体体系,微软的Word便是其中的一个典型例子.MDI体系中至少需要两种窗体,只能将其中之一设置为主窗体,其余窗体全部则全部为子窗体,主窗体负责子窗体的管理.切换等工作.自然,子窗体上承载的内容可各不相同.Tidy浏览器最终实现了三种不同的窗体:主窗体.浏览子窗体.源代码子窗体.  ② 设置窗体类型  我们通过窗体的FormStyle…
调用窗体(父):Form1,被调用窗体(子):Form2方法1:   所有权法//Form1://需要有一个公共的刷新方法public   void   Refresh_Method(){//...}//在调用Form2时,要把Form2的所有者设为Form1Form2   f2   =   new   Form2()   ;f2.Owner   =   this;f2.ShowDialog()   ;//Form2://在需要对其调用者(父)刷新时Form1   f1   ;f1   =  …
方法1:所有权法 父窗体:Form1    子窗体:Form2 //Form1:窗体代码 //需要有一个公共的刷新方法 public void Refresh_Method() { //... } //在调用Form2时,要把Form2的所有者设为Form1 Form2 f2 = new Form2() ; f2.Owner = this; f2.ShowDialog() ; //Form2:窗体代码 //在需要对其调用者(父)刷新时 Form1 f1 ; f1 = (Form1)this.Ow…