次のコードは、テキストボックスに値を入力し、その値をリストボックスに追加し、その横にある画像ボックスを更新し、テキストボックスを空白にして、ユーザーがリストボックスに値を追加できるようにする方法を示しています。
ListBox1.Items.Add(TextBoxTicketID.Text)
If CStr(ListBox1.Items(0)) = TextBoxTicketID.Text Then
PictureBoxStatus1.Image = My.Resources.Orange_Information
End If
TextBoxTicketID.Text = ""
リストボックスに入力された値に基づいてPDFを作成する、ここに示されていない別のプロセスがあります。
PDFが存在するかどうかを特定のディレクトリでチェックするループに問題があります。PDFが存在する場合は、画像ボックスを別の画像に変更します。
これが私が使用していたループですが、私が遭遇した問題は、最初の値が存在しない限り、ユーザーが2番目の値を入力できないことでした。
Loop Until My.Computer.FileSystem.FileExists("c:\Temp\" + ListBox1.Items(0) + ".pdf")
PictureBoxStatus1.Image = My.Resources.Green_Checkmark
したがって、理論的には、リストボックスにX個の値を入力し、ファイルが存在するかどうかを確認し、存在する場合は必要な画像を変更できるようにする必要があります。
編集
これが私がやったことです...しかしうまく機能しているようです...
ListBox1.Items.Add(TextBoxTicketID.Text)
If CStr(ListBox1.Items(0)) = TextBoxTicketID.Text Then
PictureBoxStatus1.Image = My.Resources.Orange_Information
End If
TextBoxTicketID.Text = ""
Call CheckFiles()
パブリックサブを追加しました
Public Sub CheckSpooling()
Dim Watcher As New FileSystemWatcher()
Watcher.Path = "C:\Temp\"
Watcher.Filter = ListBox1.Items(0) + ".pdf"
AddHandler Watcher.Created, AddressOf OnChanged
Watcher.EnableRaisingEvents = True
End Sub
次に、ファイルが追加された場合に必要なものを実行するためのサブ。テストにはmsgboxを使用しました。
Private Shared Sub OnChanged(source As Object, e As FileSystemEventArgs)
' Specify what is done when a file is created.
MsgBox("File has been created!")
End Sub