【发布时间】:2014-06-25 17:18:57
【问题描述】:
我正在尝试在 VB.NET 中创建自定义表单类 (CustomBorderlessForm)。
我的进步
- 我创建了一个新类并将其命名为 CustomBorderlessForm.vb
- 然后我开始编写以下代码:
CustomBorderlessForm.vb
Public Class CustomBorderlessForm
Inherits Form
Dim _form As Form = Nothing
Public Sub New(form As Form)
_form = form
MsgBox("Testing: New()")
End Sub
Protected Overrides Sub OnMouseMove(e As MouseEventArgs)
MyBase.OnMouseMove(e)
MsgBox("Testing OnMouseMove()")
End Sub
End Class
Form1.vb
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim form As New CustomBorderlessForm(Me)
End Sub
End Class
进展结果
- 加载时会显示一个消息框“Testing: New()”
- 鼠标移动时不显示任何内容
如你所见,我的问题在于事件
问题
- 是否可以创建一个表单对象并使用它来代替预填充表单?
- 如果是这样,我是否可以像任何其他自定义对象/类一样为该表单提供自定义属性,例如边框和一些布尔值(阴影...等)?
- 我目前的方法做错了什么?
- 为什么 OnMouseMove 没有被覆盖?
- 我是不是初始化类错了?
- 这样也能做到吗?
【问题讨论】:
-
如果您最终添加自定义属性或事件,您将不得不做一些不同的事情。在这种情况下,您需要将基类添加到 ClassLib,以便 IDE 可以从已编译版本运行。到目前为止,它看起来主要是装饰性的。
标签: vb.net forms class custom-controls