VB.NET学习笔记:WinForm如何正确调用自定义控件

测试环境:windows 7和Microsoft Visual Studio 2015
点击下载本文资源

在《VB.NET学习笔记:WinForm自定义DataGridView分页组合控件》博文中,调用分页控件的窗体与分页控件同在一个项目里。笔者从《一种正确调用自定义控件的方法》博文中查询得知,这种调用自定义控件的方法在项目调试或生成时可能会出现如图所示的错误。
错误的自定义控件调用方法
不正确的调用自定义控件会出错
出错的原因可能是:调试或生成项目时,你无法确定自定义控件和窗体的生成顺序,若先生成窗体,再生成自定义控件,生成窗体时,窗体中所引用的自定义控件还未生成,因此造成错误。
为防止出错,必须确保自定义控件生成顺序先于调用自定义控件的窗体。所以应该把自定义控件与窗体分隔为两个项目,其中自定义控件所在的项目不再是生成一个应用程序,而是生成类库供其它项目调用。
操作步骤如下:
一、新建一个Windows窗体应用程序项目。
新建项目
然后保存项目,记得勾选“创建解决方案的目录”。
保存项目
在解决方案资源管理器窗口中右键单击“解决方案"WinPager"”,添加现有项目。
添加分页控件所在的项目
找到分页控件源文件所在的文件夹,添加后缀名为.vbproj的项目文件DataGridViewPage.vbproj。
添加DataGridViewPage.vbproj文件
疑难技巧:如果解决方案资源管理器窗口中没有显示上面图中的解决方案的话,可单击菜单栏“工具”——“选项”,在弹出的“选项”窗口中左侧选择“项目和解决方案”,然后在右侧勾选“总是显示解决方案”选项,最后点“确定”。如下2图所示。
工具-选项
显示解决方案
二、相关设置
1、设置DataGridViewPage项目属性:右键单击DataGridViewPage项目名,右键菜单里选“属性”,然后设置 “应用程序类型”为“类库”,“启动对象”设置为“无”,因要生成DLL文件,所以该项目下的“Form1.vb”窗体可以删除。
然后“重新生成”DataGridViewPage项目,会在项目目录下bin文件夹里子文件夹Debug中生成一个dll文件。操作如下图所示。
重新生成DLL
2、添加引用:虽然把DataGridViewPage项目和WinPager项目放到了同一个解决方案里,但他们之间依然没有必然关系,项目WinPager必须引用DataGridViewPage项目里生成的dll文件才能建立相互关系。
操作如下图所示:右键单击项目WinPager名称,弹出的右键菜单里点“添加”——“引用”
添加引用DLL
在弹出的“引用管理器”中点“浏览”,然后在弹出的“选择要引用的文件”窗口里选择到DataGridViewPage项目目录下bin文件夹里子文件夹Debug中的DataGridViewPage.dll文件,点添加,再点确定,OK了。如下图所示操作。
引用DLL
引用成功后就可以在“解决方案资源管理器”中看到WinPager项目中的引用里多了个引用DataGridViewPage。如下图所示。
在这里插入图片描述
3、设置依赖项:为确保自定义控件生成顺序先于调用自定义控件的窗体,可以为解决方案设置依赖项。
如下图操作:右键单击“解决方案”名称,弹出的菜单里点“项目依赖项”。
在这里插入图片描述
在弹出的“项目依赖项”窗口里,“项目”选择“WinPager”,“依赖于”勾选“DataGridViewPage”,然后点确定。如下图所示。
在这里插入图片描述
在“项目依赖项”中点击“生成顺序”,即可看到分页控件“DataGridViewPage”项目生成先于“WinPager”项目。如下图所示:
生成顺序
4、设置启动项目:右键单击解决方案名称,弹出的右键菜单里点“属性”。如下图。
启动项
在弹出的“解决方案属性页”窗口中,点选“单启动项目”并选择WinPager项目为启动项目。如下图。
解决方案属性页
此时打开WinPager项目中的Form1窗体,在工具箱中会发现DataGridViewPage项目中的DataGridViewPaging控件,如下图所示。如果没有看到则需要生成一下项目。
控件
如果工具箱中还是没有看到DataGridViewPaging控件,你可以按以下方法添加自定义控件到工具箱中。
在“工具箱”窗口中任意位置右键单击,在弹出的右键菜单里点“选择项”。如下图。
选择项
在弹出的“选择工具箱项”窗口中,点“.NET Framework组件”——“浏览”。
添加组件
在“打开”窗口中选择到DataGridViewPage项目目录下bin文件夹里子文件夹Debug中的DataGridViewPage.dll文件,点“打开”即可,如下图。现在应该在工具箱中可以看到我们自定义的控件DataGridViewPaging控件了。
在这里插入图片描述
此刻,Winform调用自定义控件的环境已然搭配完成,你可以在DataGridViewPage项目直接修改自定义控件,修改结果可直接反映到调用的WinPager项目中。为方便管理,建议把同一解决方案中的全部项目放在同一文件夹中。

猜你喜欢

转载自blog.csdn.net/zyjq52uys/article/details/85340216