0

わかりました。アイテムのリストボックスをループして、filesystemwatcherに基づいてアイテムを削除するのに問題があります。

ユーザーがテキストボックスに数値を入力し、リストボックスに追加しています。

Listbox1.Items.Add(Textbox1.Text)

ここでは、現在リストボックスアイテムをループし、テスト目的でmsgboxをトリガーしていました。

Public Sub CheckCreatedPDFs()
    For i As Integer = 0 To ListBox1.Items.Count - 1
        Dim Watcher As New FileSystemWatcher()
        Watcher.Path = "C:\Temp\"
        Watcher.NotifyFilter = (NotifyFilters.Attributes)
        Watcher.Filter = ListBox1.Items(i) + ".pdf"

        AddHandler Watcher.Changed, AddressOf OnChanged

        Watcher.EnableRaisingEvents = True
    Next i

End Sub

Private Sub OnChanged(source As Object, e As FileSystemEventArgs)
    ' Specify what is done when a file is created.
    MsgBox("SPACE RESERVED FOR REMOVING LISTBOX ITEMS")
End Sub

それらのアイテムを削除する方法について何か提案はありますか?ありがとう!

4

1 に答える 1

1

のリターンを格納しListBox1.Items.IndexOf(e.Name)ます。-1 より大きい場合は、 を使用しますListBox1.Items.RemoveAt(SavedIndex)。を使用していVB.Netないため、正確なコードを提供できません。

C# では、次のようになります。

private void OnChanged(object Sender, FileSystemEventArgs e)
{
    var Idx = listbox1.Items.IndexOf(e.Name);
    if (Idx > -1) 
    {
      listbox1.Items.RemoveAt(Idx);
    }
}
于 2012-09-14T00:45:09.043 に答える