0

我正在开发一个新项目,但目前陷入困境。我正在使用 ListBox 添加记录器。

在我的项目中,我使用的是 WebBrowser,并且我想在每次页面加载时添加到日志中。我正在尝试这样做:

    If WebBrowser1.StatusText.ToString = "Klar" Then
        Label14.Text = "Success"
    End If
    If Label14.Text = "Success" Then
        Logger.Items.Add("> Successfully loaded")
    End If

“Klar”翻译为“完成”(瑞典语)

但是状态一直在更新,并且垃圾邮件“完成/Klar”因此我的记录器项目在状态更改之前添加了 5 次以上(我更改了页面)。

所以我正在寻找一种只写一次的方法,也许检查它是否已经被添加到之前的项目上。我在计时器中使用它,因此它将在日志中添加多次,但如果日志中的最后一项相同,我只想添加一次。

有谁知道这是怎么做到的?

谢谢你的帮助!PS。我会在早上看看这个线程,但我真的很感激我能得到的任何帮助:)

4

2 回答 2

1

我为你做了一个例子,很容易理解。只需更改您需要的内容。您可以使用“包含函数”来获取您需要检查的项目是否存在于您的列表框控件中。

    Public Class Form1

'Global Variable to hold your string(text)'
Private strText As String = ""

Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    Dim myArray() As String = {"Car", "Truck", "Motorcycle"}
    ListBox1.Items.AddRange(myArray)
End Sub

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click

    'First whatever you are sending to the listbox you need to set it to a variable'
    'For example I want to see if Motorcycle exists in the listbox so I set my variable'
    strText = "Motorcycle"

    'Now lets check if this exists in our listbox!'
    If ListBox1.Items.Contains(strText) Then
        'We can even select the item that is found'
        ListBox1.SelectedItem = strText

        MsgBox("Listbox contains: " & strText) 'Or do what you want here'

    Else
        MsgBox("NO FOUND ITEM")
    End If

End Sub
End Class

您可以忽略负载,因为我只是将其用于测试...也只需将此代码放在您插入数据的位置(在它插入您的列表框之前,如果它不在列表框中,请继续添加您想要的内容让我知道它对你来说是如何工作的!

谢谢!

于 2013-01-07T05:54:03.763 回答
0

容器功能并不真正适合我想要的。我希望能够多次添加相同的变量/项目/字符串,并且仍然只能在记录器的行中添加一次。

因此,因为我将其用作记录器,所以我希望它自动选择一个新项目,因为我希望它“关注”最新的项目。

所以我检查了所选项目是否等于我的变量是否为假。然后我将变量添加到我的记录器/列表框中。

SuccessLoad = "> Successfully loaded"

    If WebBrowser1.StatusText.ToString = "Done" Then
        If Logger.SelectedItem.Equals(SuccessLoad) = False Then 'adds if not selected
            Logger.Items.Add(SuccessLoad)
            Logger.SelectedIndex = Logger.Items.Count - 1 'selects the variable
        End If
    End If
于 2013-01-07T16:58:41.540 回答