Visual Basic 6 - 当标签更改时,列表中的 add/remove 项

Visual Basic 6 - when label changes, add/remove item in list

我目前正在开发一个名为 Starboy Notepad 的 Visual Basic 6 项目,您可以查看 Github。我运行遇到了问题。

我有 RichTextBox1、Label1 和 List1 控件。我已经设置好了,每次我向我的 RichTextBox1 添加一行时,Label1 中的文本都会更改,显示 RichTextBox1 中的行数。

我想做的是,在 List1 中,每次添加 RichTextBox1 中的一行时都会添加一次,每次删除 RichTextBox1 中的一行时,都会删除 List1 中的最后一项也是。

基本上,我想在 Notepad++ 或 Notepads 等程序中计算您在左侧看到的行数。

如有任何帮助,我们将不胜感激 :D(并注明)

关于行计数器的代码:

Public Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByRef lparam As Any) As Long
Public Const EM_GETLINECOUNT As Long = &HBA
Public Sub linecount()
Dim linecount As Integer
  linecount = SendMessage(Form1.RichTextBox1.hwnd, _
                  EM_GETLINECOUNT, 0, 0)
Form1.Label1.Caption = linecount
Form1.List1.AddItem (linecount)
End Sub


Public Sub linecount2()
Dim linecount As Integer
  linecount = SendMessage(Form1.RichTextBox1.hwnd, _
                  EM_GETLINECOUNT, 0, 0)
Form1.Label1.Caption = linecount
End Sub

在 RichTextBox 中:

Private Sub RichTextBox1_Change()

On Error Resume Next
Dim KeyCode As Integer
Form1.KeyPreview = True
If KeyCode = vbKeyReturn Then linecount
linecount2

像这样它确实有效,也就是每次我按下 Enter 时,它都有效。但是每次我删除一行时,它都不会从 List1 项目中删除最后一项。

如果我是对的。 您有一个侧面板来标识文件中的每一行。

此面板始终需要更新。想象一下中间线被移除的情况。 在你的情况下,你可以简单地删除所有数字并重新添加它们。

Private Sub UpdateLines(linecount As Integer)
    Dim i As Integer

    List1.Clear
    For i = 1 To linecount
        List1.AddItem (i)
    Next
End Sub