AddHandler watcher.Changedでフォームのテキストボックスに入力するには


pan  2008-07-18 12:10:58  No: 100906  IP: 192.*.*.*

下のようなコーディングをしたのですが、TEXTBOXに反映されません。
色々調べて見たのですが、
  Invoke(New SetFocusDelegate(AddressOf SetFocus))
 Delegate 
http://codezine.jp/a/article/aid/139.aspx#form
等調べてみましたがどうもエラーが出てしまいます
何か根本的に私のコードがおかしい気がします。
本来やりたいことは、あるファイルを監視して書き換えか新しく作られたら
ファイルを読み込んでその内容をテキストボックスに書き込みしたいのです。
まだ勉強中で足りないことが多いのでアドバイスをよろしく願います。
 Shared Sub MainX()

        Dim fileName As String = "C:\空売り1.txt"    'ファイルのパス
        'System.IO.File.Delete(fileName)
        Dim watcher As FileSystemWatcher = New FileSystemWatcher()
        watcher.Path = "C:\"
        watcher.Filter = "空売り1.txt"
        watcher.IncludeSubdirectories = True
        watcher.NotifyFilter = NotifyFilters.FileName


        AddHandler watcher.Changed, AddressOf DoWork
        AddHandler watcher.Created, AddressOf DoWork
        watcher.EnableRaisingEvents = True

    End Sub
   

    Shared Sub DoWork(ByVal source As Object, ByVal e As FileSystemEventArgs)
       
        Dim fd(5) As String
        Dim st As Stream = Nothing
        Dim maxCount As Integer = 10
        Dim fileName As String = "C:\***.txt"    'ファイルのパス
        Dim i As Integer
       
        For i = 0 To maxCount - 1
            Try
                st = File.Open(e.FullPath, FileMode.Open, FileAccess.Read, FileShare.None)
                If Not st Is Nothing Then
                    Exit For
                End If
            Catch ex As Exception
                System.Threading.Thread.Sleep(300)
            End Try
        Next
        If Not st Is Nothing Then
            st.Close()
          
            Dim fileNo As Integer = FreeFile()
            '' ファイルを入力モードで開く()
            FileOpen(fileNo, fileName, OpenMode.Input)
            ''  ファイルの最後までループ()

            Input(fileNo, fd(0))   'ファイルから読み込み
            Input(fileNo, fd(1))
            Input(fileNo, fd(2))
            Input(fileNo, fd(3))
            Input(fileNo, fd(4))
          
            Form1.TextBox47.Text = fd(0)
            Form1.TextBox3.Text = fd(1) : Form1.TextBox4.Text = fd(2)
            Form1.TextBox5.Text = fd(3) : Form1.TextBox6.Text = fd(4)

            Debug.Print(Form1.TextBox47.Text)
             FileClose(fileNo) 'ファイルを閉じる
              Form1.Timer2.Enabled = True
            System.IO.File.Delete(fileName)

           


        Else
            ' タイムアウト
        End If
    End Sub

編集 削除
我龍院  2008-07-18 15:17:32  No: 100907  IP: 192.*.*.*

FileSystemWatcherを使わない理由は何かあるんですか。
それ以前に、ここはVB2-VB6専用の掲示板ですが。

編集 削除
pan  2008-07-18 17:55:43  No: 100908  IP: 192.*.*.*

すみませんです。
よく見てなかったようです。
NET方へ書き直します、FileSystemWatcherは、イベントが、2回でてしまうので、こちらのほうが良いかなと判断しました。

編集 削除