先上代码:
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的代码完整抄一遍,都不一定行。最主要的是,就算进行了深入研究,最终能实现这个想法,它也没有什么价值。