一种正确调用自定义控件的方法

Winform自带的控件往往不能满足我们的需要,或者在某些方面不够方便,可以通过自定义控件可以解决上述的问题,但自定义控件的正确的调用方法却鲜为人知。

1、一般的调用方法

新建一个项目,暂且命名为UI,默认会创建一个名为Form1的窗体。

一种正确调用自定义控件的方法_第1张图片

一种正确调用自定义控件的方法_第2张图片

一种正确调用自定义控件的方法_第3张图片

新建一个自定义控件,名为MyControl。

一种正确调用自定义控件的方法_第4张图片

一种正确调用自定义控件的方法_第5张图片

一种正确调用自定义控件的方法_第6张图片

对MyControl代码进行修改,将其背景颜色设置为蓝色。

一种正确调用自定义控件的方法_第7张图片

此时打开Form1窗体,会在工具箱里面找到自定义的MyControl控件,若找不到则需要生成一下项目。

一种正确调用自定义控件的方法_第8张图片

将其拖至Form1窗体上,与上方设置的背景颜色完全一致。

一种正确调用自定义控件的方法_第9张图片

但这并不是正确调用方法,若是经常接触自定义控件,当打开包含有自定义控件的窗体时,会出现类似于以下两张图的情况,出现这两种情况的原因是:生成项目时,你无法确定自定义控件生成的顺序先于窗体,若先生成窗体,再生成自定义控件,生成窗体时,窗体中所引用的自定义控件还未生成,因此造成错误。

一种正确调用自定义控件的方法_第10张图片

一种正确调用自定义控件的方法_第11张图片

2、正确的调用方法

为了确保自定义控件生成顺序先于调用自定义控件的窗体,可将自定义控件与窗体分隔为两个工程,其中自定义控件所在的工程不再是生成一个应用程序,而是生成类库供其它工程调用,因此需要将工程的输出类型设置为类库。此时Form1和Program都是多余的文件,可以删除。

一种正确调用自定义控件的方法_第12张图片

一种正确调用自定义控件的方法_第13张图片

对UI工程进行生成,会在工程目录下bin文件夹中生成一个dll文件,该文件是一个引用文件,当其它工程引用这个文件,就可以调用UI工程中的自定义控件。

一种正确调用自定义控件的方法_第14张图片一种正确调用自定义控件的方法_第15张图片

此时可以关闭UI工程,并新建一个目标框架与UI工程一致的项目,暂且命名为Test。

一种正确调用自定义控件的方法_第16张图片一种正确调用自定义控件的方法_第17张图片

将UI工程加入Test解决方案。

一种正确调用自定义控件的方法_第18张图片  一种正确调用自定义控件的方法_第19张图片

一种正确调用自定义控件的方法_第20张图片

虽然两个工程再同一解决方案中,但二者之间没有任何关系,若要将其关联起来,需要在Test工程中,引用UI工程所生成的dll文件。

一种正确调用自定义控件的方法_第21张图片

一种正确调用自定义控件的方法_第22张图片 一种正确调用自定义控件的方法_第23张图片

一种正确调用自定义控件的方法_第24张图片

再对Test解决方案设置项目依赖项,设置哪个项目依赖于哪个项目才能运行;设置项目生成顺序,设置项目生成的前后顺序;设置启动项目,设置哪个项目作为启动项目。

一种正确调用自定义控件的方法_第25张图片一种正确调用自定义控件的方法_第26张图片

一种正确调用自定义控件的方法_第27张图片

此时打开Test工程中的Form1窗体,在工具箱中会发现UI工程中的MyControl控件,如果没有则需要生成一下项目,见到下图,意味着Winform调用自定义控件的环境已然搭配完成,此后需要自定义控件,均与UI工程中添加,Test工程中调用。

一种正确调用自定义控件的方法_第28张图片

PS:建议将UI工程置于Test工程文件夹中,作为一个整体,方便搬运。

你可能感兴趣的:(一种正确调用自定义控件的方法)