用户控件与VisualBasic提供的控件类似,例如TextBox或Button,但您可以使用自己的代码使自己的控件执行任何操作。把它们想象成带有自定义方法和属性的标准控件的“捆绑包”。
每当您有可能在多个地方使用的控件组时,考虑用户控件。请注意,您也可以创建web用户控件,但它们与web自定义控件不同;本文仅介绍Windows用户控件的创建。
更详细地说,用户控件是一个VB.NET类。该类继承自Framework UserControl类。UserControl类为控件提供了所需的基本函数,因此可以将其视为内置控件。用户控件还有一个可视化界面,非常类似于在VB.NET中设计的VB.NET窗体。
为了演示一个用户控件,我们将创建我们自己的四功能计算器控件(看起来就是这样),您可以将其拖放到项目中的窗体上。如果您有一个金融应用程序,其中有一个自定义计算器是很方便的,那么您可以将自己的代码添加到这个应用程序中,并像在项目中使用工具箱控件一样使用它。
使用您自己的计算器控件,您可以添加自动输入公司标准(如所需回报率)的键,或者将公司徽标添加到计算器中。
创建用户控件的第一步是编写一个标准的Windows应用程序,它可以满足您的需要。虽然还有一些额外的步骤,但通常作为标准Windows应用程序比作为用户控件更容易对控件进行编程,因为它更容易调试。
应用程序运行后,可以将代码复制到用户控件类,并将用户控件构建为DLL文件。这些基本步骤在所有版本中都是相同的,因为底层技术是相同的,但在VB.NET版本中,确切的过程略有不同。
如果您使用的是VB.NET 1.X标准版,则会出现一个小问题。用户控件必须创建为DLL才能在其他项目中使用,此版本不会“开箱即用”地创建DLL库。这会带来很多麻烦,但您可以使用本文介绍的技术来了解如何解决此问题。
使用更高级的版本,创建一个新的Windows控件库。按照此链接查看VB.NET 1.X对话框。
从VB主菜单中,单击项目,然后添加用户控件。这为您提供了一个表单设计环境,该环境与用于构建标准Windows应用程序的环境几乎相同。
要签出您的工作,可以关闭Windows控件库解决方案并打开标准Windows应用程序解决方案。拖放新的CalcPad控件并运行项目。此图显示它的行为与Windows计算器类似,但它是项目中的控件。
这并不是将控件转移到其他人的生产中所需的全部操作,但这是另一个主题!
在VB.NET2005中构建用户控件的过程几乎与1.X相同。最大的区别是,不是右键单击工具箱并选择添加/删除项,而是通过从“工具”菜单中选择“选择工具箱项”来添加控件;过程的其余部分是相同的。
下面是在VB.NET2005中以表单形式运行的相同组件(实际上,使用Visual Studio转换向导直接从VB.NET1.1转换而来)。
同样,将此控制转移到生产中可能是一个复杂的过程。通常,这意味着将其安装在GAC或全局程序集缓存中。
...入在microsoftexcel中变得轻而易举。下面是如何在电子表格中创建一个清单,并使它看起来像你自己的清单。 为什么是检查表?您可以使用清单来跟踪旅行要打包的物品、公司的产品、节日礼物清单、每月账单或跟踪任务。通过一...
...还将值返回给调用代码。 程序员可以在模块、类或结构中创建函数。默认情况下,函数是公共的。因此,可以从应用程序中可以访问已定义的类、结构或模块的任何位置调用它。此外,函数接受变量、常量或表达式等参数。调...
...包含静态(X)HTML标记。它还包含定义服务器端Web控件和用户控件的标记。这是开发人员放置网页的所有rc内容的地方。 在ASP.netframework2.0中,引入了一种新的代码隐藏模型。这允许静态文本保留在.aspx页上,而动态代码保留在.asp...
...包含静态(X)HTML标记。它还包含定义服务器端Web控件和用户控件的标记。这是开发人员放置网页的所有rc内容的地方。 在ASP.netframework2.0中,引入了一种新的代码隐藏模型。这允许静态文本保留在.aspx页上,而动态代码保留在.asp...
...建和运行动态的、交互式的Web服务器应用程序。它还允许用户结合HTML页面、脚本命令和COM组件来创建交互式Web页面和强大的基于Web的应用程序。这也使得开发和修改上述Web应用程序变得更加容易。 在最初发布之后,已经有两个...
...符号指令代码。它是由Microsoft创建的。它提供了一个图形用户界面GUI,在这个GUI的帮助下,开发人员可以轻松地将各种对象拖放到程序中。它还提供了手动编写程序代码的选项。VB是为一个简单而有能力的软件开发而设计的。VB...
...为整数类型,但可以使用DirectCast将表单类型强制转换为控件类型。 让我们检查一下微软的DirectCast示例的性能。使用上面显示的相同代码模板,替换为。。。 c = DirectCast(f, System.Windows.Forms.Control) ... 与CType和TryCast的类似替...
想成为有史以来最好的数据编辑网格吗?下面是构建用户界面以编辑DBGrid中的查找字段的说明。具体来说,我们将研究如何将DBLookupComboBox放置到DBGrid的单元格中。 这将调用来自数据源的信息,这些信息将用于填充下拉框。 ...
... Basic程序中操作对象时调用的代码块。操作可以由程序的用户通过GUI、程序或某些其他过程(如时间间隔到期)来完成。例如,大多数表单对象都有一个单击事件。formForm1的Click事件过程将由名称Form1\u Click()标识。 表达式,...
...的唯一方法,但它有真正的优势。例如,可以在PictureBox控件中包含位图,或使用mciSendString Win32 API。 Microsoft将资源定义为“与应用程序一起逻辑部署的任何不可执行的数据” 管理项目中资源文件的最简单方法是在项目属性中...