一个主窗体为MIDContainer,主窗体上有一个按钮,点击这个按钮出来一个“管理模块”的窗体,在生成这个模块的事件写:(代码写在主窗体上)
scgl.frm_scgl_base scglbase = new scgl.frm_scgl_base();
scglbase.MdiParent = this;
scglbase.Top = 0;
scglbase.Left = 0;
scglbase.Show();
scglbase.BringToFront();
有一个模块"型号录入"是继承“管理模块”出来的,点击“管理模块”上的“型号录入”按钮就出来“型号录入”界面。所以我是这样写的:(代码在管理模块上写)
frm_main mainF = new frm_main(); //frm_main是主窗体
scgl.frm_scgl_xhlr scglxhlr = new scgl.frm_scgl_xhlr();
scglxhlr.MdiParent = mainF; //这里出问题
scglxhlr.Show();
scglxhlr.BringToFront();
发现问题:我加了 scglxhlr.MdiParent = mainF; 无论怎么点击“型号录入”按钮都不出来,但是如果没有 scglxhlr.MdiParent = mainF;出来的窗体有不在主窗体里面。请大虾帮忙。。(也就是MDI窗体的问题了。)谢谢
scgl.frm_scgl_base scglbase = new scgl.frm_scgl_base();
scglbase.MdiParent = this;
scglbase.Top = 0;
scglbase.Left = 0;
scglbase.Show();
scglbase.BringToFront();
有一个模块"型号录入"是继承“管理模块”出来的,点击“管理模块”上的“型号录入”按钮就出来“型号录入”界面。所以我是这样写的:(代码在管理模块上写)
frm_main mainF = new frm_main(); //frm_main是主窗体
scgl.frm_scgl_xhlr scglxhlr = new scgl.frm_scgl_xhlr();
scglxhlr.MdiParent = mainF; //这里出问题
scglxhlr.Show();
scglxhlr.BringToFront();
发现问题:我加了 scglxhlr.MdiParent = mainF; 无论怎么点击“型号录入”按钮都不出来,但是如果没有 scglxhlr.MdiParent = mainF;出来的窗体有不在主窗体里面。请大虾帮忙。。(也就是MDI窗体的问题了。)谢谢
解决方案 »
- 求助:错误 CS0571: “decimal.operator ++(decimal)”要如何解决?
- c# winform datagridview 单元格固定
- C#程序出现faulting module unknown
- C#,你以为你的智商过人?玩什么飞机,真想踹你两脚!!
- 怎样动态取得icon资源?
- MDI程序子窗体button单击弹出窗体,依然在父窗体之内的问题
- OdbcDataAdapter
- C#中按照value排序后还能记住key的实现,急求!高手指点!
- ///<summayr>.....</summary>有无快捷键???
- 关于滚动条!窗口大小变化后滚动条的Value不变化?
- 数据库连接调试与非调试出现的错误,什么原因?
- 200分!碰到一个极难的问题,查了2天都不见答案,也看了一些类似帖子,都无法解决,高手请进。
scgl.frm_scgl_xhlr scglxhlr = new scgl.frm_scgl_xhlr();
scglxhlr.MdiParent = this.MdiParent;
scglxhlr.Show();
scglxhlr.BringToFront();
;
用 scglxhlr.MdiParent = this.MdiParent; 是可以显示出来,但是显示出来的窗体不是在主窗体里面的。
象我显示的 管理模块 窗体就是在主窗体里面(不管怎么拖都出不了主窗体)
在帮帮,谢谢了
scglxhlr.MdiParent = mainF; //这里出问题
--------------------------你这里设置MdiParent是一个新的frm_Main()实例,而不是程序里的主窗口了.当然会异常.
你应该把程序里启动的那个主窗体(为MdiParent的窗体)传到这个代码段里而不是新New出来一个.一般来说,你应该这样的:在frm_main窗体的代码中:
--------------frm_main.cs中-------------scgl.frm_scgl_xhlr scglxhlr = new scgl.frm_scgl_xhlr();
scglxhlr.MdiParent = this; //这里的this就是主窗口frm_Main的当前实例的引用.
scglxhlr.Show();
scglxhlr.BringToFront();//这句没有必要,可以不要.
在我的程序中主窗体是一个父窗体,我是想把 型号录入 放到主窗体里面去,型号录入 窗体是继承 管理模块 窗体的
其实我的做法很简单:主窗体为父窗体,其他是子窗体,每打开一个子窗体都在主窗体里面
我写的这个代码
frm_main mainF = new frm_main(); //frm_main是主窗体
scgl.frm_scgl_xhlr scglxhlr = new scgl.frm_scgl_xhlr();
scglxhlr.MdiParent = mainF; //这里出问题
scglxhlr.Show();
scglxhlr.BringToFront();
是在 管理模块 窗体写的,不是在主窗体写的。因为我在管理模块窗体上还有很多按钮(功能模块的),你说的把主窗体传到‘这个代码段里’应该怎么实现?谢谢。。
所以lz要用mdi是不能实现的。
这样不好就是把鼠标点到别的窗体这个子窗体就不见(跑到后面去了。)
象Delphi 如果设置了一个主窗体为父窗体,其他的窗体为子窗体,不管怎么样,子窗体总是在主窗体的上面,而且鼠标点别的地方,子窗体不会跑到后面去。
scglxhlr.Show(this.MdiParent);
我调试的时候出错了。。说:E:\wudong\试验例子\c#\book\guanli\guanli\scgl\scgl_base.cs(259): 重载“Show”方法未获取“1”参数
你上面说的不可以应该是不对的.我测试过没有问题! 不是说不可以,是说显示出来的 型号录入 窗体在 主窗体 外面。我是想显示出来的 型号录入 窗体要显示在主窗体里面
scgl.frm_scgl_xhlr scglxhlr = new scgl.frm_scgl_xhlr();
this.MdiParent.AddOwnerForm(scglxhlr);
scglxhlr.Show();如果是子窗体,又要在所有的子窗体最上面,这一点可能做不到.
要么是子窗本,被主窗体包含,要么是上层窗体.
未将对象引用设置到对象的实例通不过呀。