从头创建 Visual Basic .NET 控件 (七)

visual|创建|控件

第 6 步:清理
为了使控件顺利地运作,我们还需要执行一些其他操作。例如,大小改变时需要重新绘制控件。而且,为了不改变控件的比例,我们需要检测影响大小的属性发生更改的时间,然后强制宽度等于高度的三分之一。下面是完成这两项任务的事件处理程序:

Private Sub TrafficLight_Resize(ByVal sender As Object, _
                 ByVal e As System.EventArgs) Handles MyBase.Resize
    Me.Invalidate()
End Sub

Private Sub TrafficLight_Layout(ByVal sender As Object, _
             ByVal e As System.Windows.Forms.LayoutEventArgs) _
             Handles MyBase.Layout
    Select Case e.AffectedProperty
        Case "Bounds"
            Me.Width = CInt(Me.Height * 0.3333)
        Case Else
            ' 不执行任何操作
    End Select
End Sub

最后,设置控件在工具箱中使用的图标。控件已经有一个看似齿轮的默认图标,但是我们要使用 Visual Studio .NET 附带的红绿灯图标。

控件的工具箱图标是由名为 ToolboxBitmap 的类中的特性设置的。在以 Public Class 开始的行上面插入以下行:

<ToolboxBitmap("C:\Program Files\Microsoft Visual Studio
.NET\Common7\Graphics\icons\Traffic\TRFFC09.ICO")> _

注意:所有内容都应在一行中。为了便于阅读,我们在 Studio 后放置了一个回车。粘贴该代码时,要确保它们位于一行中,Studio 和 .NET 之间只需一个空格,并删除回车。如果您已经将 Visual Studio .NET 安装到其默认位置,那么上述代码将用 Visual Studio 目录中的图标设置该特性。如果您没有将 Visual Studio .NET 安装到其默认位置,则需要相应地更改图标的路径名。

时间: 2024-10-29 22:39:21

从头创建 Visual Basic .NET 控件 (七)的相关文章

从头创建 Visual Basic .NET 控件 (八)

visual|创建|控件 第 7 步:生成和测试控件现在 TrafficLight 控件的设计就完成了.选择 Build | Build MyControls(生成 | 生成 MyControls),以创建最终的控件库. 要测试控件,我们需要一个 Windows 窗体项目.您可以在其他解决方案中执行此操作,但在开发控件所用的解决方案中执行会更容易.从菜单中选择 File | Add Project | New Project(文件 | 添加项目 | 新项目).选择 Windows Applica

从头创建 Visual Basic .NET 控件 (六)

visual|创建|控件 第 5 步:使控件响应用户要允许用户更改灯的颜色,必须检测到用户的鼠标单击操作.有经验的 Visual Basic 开发人员都知道,可以使用多种方法实现这一目的.我们使用最简单的一种方法,即检测 MouseUp 事件.下面是检测用户单击并更改 Status 属性以与之匹配的代码: Private Sub TrafficLight_MouseUp(ByVal sender As Object, _                     ByVal e As System

从头创建 Visual Basic .NET 控件 (二)

visual|创建|控件 现在让我们开始吧. 第 1 步:创建类型正确的项目要创建一个保存 Windows 窗体控件的库,需要在 Visual Basic.NET 中启动一个新项目,选择 Windows Control Library(Windows 控件库)项目类型,然后将项目命名为 MyControls. 所创建的项目实际上可以保存多个 Windows 窗体控件,每个控件都属于其各自的类,但我们只需在其中创建一个控件.

从头创建 Visual Basic .NET 控件 (三)

visual|创建|控件 第 2 步:更改基类在控件库中创建的类自动命名为 UserControl1,默认情况下,从 UserControl 类继承.如果我们要创建复合控件,那非常容易,只需将其他控件从工具箱中拖到设计表面上即可. 但是,由于我们要从头创建自己的控件,因此需要做一些更改.将控件类的名称从 UserControl1 更改为 TrafficLight.然后,将以下行:     Inherits System.Windows.Forms.UserControl 更改为:     Inh

从头创建 Visual Basic .NET 控件 (五)

visual|创建|控件 第 4 步:绘制控件的外观要使控件具有一个可视的外观,我们需要在 Paint 事件中放置逻辑.然后,每次控件需要刷新其可视外观时,就会运行该逻辑. Windows 窗体中的 Paint 逻辑使用 .NET 中 GDI+ 部分中的类.这些类基本上包括了 Windows API 图形功能.由于适合 .NET,所以比 API 更易于使用.但是,有关它们的工作原理,需要理解以下几点. 在 Windows API 中,图形操作需要一个窗口句柄,有时称为 hWnd.在 GDI+ 中

从头创建 Visual Basic .NET 控件 (四)

visual|创建|控件 第 3 步:实现属性和事件要实现 Status 属性,首先要为可能的属性值创建枚举.将以下几行插入以 Inherits 开始的行下面: Public Enum TrafficLightStatus    statusRed = 1    statusYellow = 2    statusGreen = 3End Enum 此枚举是公开的,也就是说使用该控件的窗体可以访问它. 在这些行下面添加以下三行: Dim mStatus As TrafficLightStatus

Visual Basic CommandButton控件

使用CommandButton控件 命令按钮控件被用来启动.中断或结束一个进程.单击它时将调用已写入Click 事件过程中的命令. 大多数Visual Basic应用程序中都有命令按钮,用户可以单击按钮执行操作.单击时,按钮不仅能执行相应的操作,而且看起来就象是被按下和松开一样,因此有时称其为下压按钮. 详细信息 关于CommandButton控件的简单示例,请参阅第三章,"窗体.控件和菜单"中的"单击按钮执行操作". 向窗体添加命令按钮 在应用程序中很可能要使用一

扩展Visual Editor的控件和属性

扩展 Visual Editor 的控件和属性 Visual Editor for Java 是基于 eclipse 的 GUI 可视化编辑插件,该插件以 Java 代码为中心,实现了所见即所得的用户界面编辑方式,广泛支持目前的 SWT.AWT.Swing 等控件包.本文通过一个完整的对 Visual Editor 的扩展示例,向读者展示扩展 Visual Editor 的控件和属性的方法. 背景 Visual Editor for Java 实现了基于 Java 源代码的所见即所得的用户界面开

qt中如何根据类名动态创建qt默认的控件类实例

问题描述 qt中如何根据类名动态创建qt默认的控件类实例 7C 需要根据从外部读取类名来创建类的实例,类大多为qt自带的控件类,如QWidgetQLineEdit等.有没有不用继承这些类就可以动态创建的方法? 解决方案 int id = QMetaType::type(""MyClass"");if (id != 0) {void *myClassPtr = QMetaType::construct(id);...QMetaType::destroy(id myCl