好的,所以我在 stackoverflow 上找到了这段代码,并在我的项目中将它实现到了一个新的类文件中。
Imports System
Imports System.Collections.Generic
Imports System.Text
Imports System.Runtime.InteropServices
Imports System.Windows.Forms
Namespace WindowsFormsApplication1
Public Class MyRichTextBox
Inherits RichTextBox
<DllImport("user32.dll", CharSet:=CharSet.Auto)> _
Public Shared Function GetScrollPos(ByVal hWnd As IntPtr, ByVal nBar As Integer) As Integer
End Function
<DllImport("user32.dll")> _
Private Shared Function SetScrollPos(ByVal hWnd As IntPtr, ByVal nBar As Integer, ByVal nPos As Integer, ByVal bRedraw As Boolean) As Integer
End Function
Private Const SB_HORZ As Integer = &H0
Private Const SB_VERT As Integer = &H1
''' <summary>
''' Gets and Sets the Horizontal Scroll position of the control.
''' </summary>
Public Property HScrollPos() As Integer
Get
Return GetScrollPos(DirectCast(Me.Handle, IntPtr), SB_HORZ)
End Get
Set(ByVal value As Integer)
SetScrollPos(DirectCast(Me.Handle, IntPtr), SB_HORZ, value, True)
End Set
End Property
''' <summary>
''' Gets and Sets the Vertical Scroll position of the control.
''' </summary>
Public Property VScrollPos() As Integer
Get
Return GetScrollPos(DirectCast(Me.Handle, IntPtr), SB_VERT)
End Get
Set(ByVal value As Integer)
SetScrollPos(DirectCast(Me.Handle, IntPtr), SB_VERT, value, True)
End Set
End Property
End Class
End Namespace
在我将代码实现到我的项目中后,我意识到要替换我的 RichTextBox,我将不得不更改我的大部分代码。为了寻求一种更快的方法来做到这一点,我将以下代码放在我的 form1_Load 事件中。
RichTextBox1 = New MyRichTextBox
所以现在 RichTextBox1 是 MyRichTextBox
并且因为 MyRichTextBox 实现了 RichTextBox 它应该具有相同的事件。
但是我的 RichTextbox.TextChanged 事件不起作用。现在,如果我从 form1_load 中删除上面的那一行,它就可以正常工作。怎么了?
编辑
所以我发现 MyRichTextBox 没有与 RichTextBox 相同的事件......我将如何添加这些事件?