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

「クラー」は「完了」を意味します (スウェーデン語)

しかし、ステータスは常に更新され、スパム「Done/Klar」であるため、ロガーへの私のアイテムはステータスが変更される前に5回以上追加されます(ページを変更します)。

だから私はそれを一度だけ書く方法を探しています。おそらく、それがすでにアイテムに追加されているかどうかを確認してください。これをタイマーで使用しているため、ログに何度も追加されますが、ログの最後の項目が同じ場合は一度だけ追加したいです。

これがどのように行われるか知っている人はいますか?

ご協力いただきありがとうございます!PS。午前中にこのスレッドを確認します。

4

2 に答える 2

1

私はあなたのために例を作りましたが、とても簡単です。必要なものを変更するだけです。「Contains 関数」を使用して、アイテムがリストボックス コントロールに存在するかどうかを確認するために必要なものを取得できます。

    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

コンテナー関数は、私が望んでいたものに実際には適合しませんでした。同じ変数/アイテム/文字列を複数回追加できるようにしたかったのですが、ロガーの行に一度だけ追加できるようにしたかったのです。

したがって、これをロガーとして使用しているため、最新のアイテムを「フォロー」したいので、新しいアイテムを自動選択する必要があります。

したがって、選択した項目が変数と等しいかどうかを確認しましたが、falseです。次に、変数をロガー/リストボックスに追加しました。

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 に答える