首页 > 学院 > 开发设计 > 正文

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

2019-11-11 07:53:30
字体:
来源:转载
供稿:网友

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

1、一般的调用方法

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

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

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

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

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

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

2、正确的调用方法

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

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

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

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

  

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

 

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

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

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


上一篇:1046. 划拳(15)

下一篇:警惕自增的陷阱

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表