当前位置: 代码迷 >> C# >> []继承ContainerControl重写一个类似Form的窗口
  详细解决方案

[]继承ContainerControl重写一个类似Form的窗口

热度:55   发布时间:2016-05-05 04:54:01.0
[求助]继承ContainerControl重写一个类似Form的窗口
先上代码:
public partial class Form1 : Form
    {
        private Form _fm;

        public Form1()
        {
            InitializeComponent();
            _fm = new Form();
            _fm.Show();
        }
    }


在一个简单的winform程序里面new一个form窗口然后调用“_fm.Show()”就可以把_fm窗口显示出来。

我们知道Form类是继承自ContainerControl类,那么我想自己写一个MyForm类继承自ContainerControl,然后调用一下Show()也能把窗口显示出来,MyForm类需要实现或重写那些函数,需要做怎样的配置?
    public partial class Form1 : Form
    {
        private MyForm _fm;

        public Form1()
        {
            InitializeComponent();
            _fm = new MyForm();
            _fm.Show();
        }
    }

    public class MyForm : ContainerControl
    {
    }

------解决思路----------------------
呃,之前说了winform内部是紧密耦合的,这不是仅仅Form本身的事情,比如Application类依赖Form,类似的内部还有很多地方都是这样写的。虽然Form本身的逻辑不算是太复杂,但是别的地方的代码要依赖它。你又无法把别的地方对Form的依赖换掉,也就是说就算把Form的代码完整抄一遍,都不一定行。最主要的是,就算进行了深入研究,最终能实现这个想法,它也没有什么价值。
  相关解决方案