0

質問に入る前に、少し背景を説明しましょう。最初にMyMainFormが起動し、Form2というフォームを初期化してから、別のクラスのメソッドを呼び出し、そのメソッドにForm2のインスタンスをパラメーターとして渡します。これは下の図から見ることができます。次に、メソッドはRunInThread新しいスレッドで別のメソッドを実行します。ここで知りたいのは、RunInThreadメソッドを使用してform2のテキストボックスのデータを変更する方法です。図は私のシナリオも説明しています。テキストボックス内のテキストを変更するメソッドへのデリゲートを作成しようとしましたが、そのデリゲートはForm2クラスにありましたが、RunInThreadメソッドからそのデリゲートを呼び出すことはできないようです。RunInThreadメソッドを使用してForm2のテキストボックス内のテキストを変更する方法に関する提案。

ここに画像の説明を入力してください

4

1 に答える 1

1

メソッド内で、RunInThread(Form2 frm_)は次のようになります。

frm_.BeginInvoke( new System.Windows.Forms.MethodInvoker( () => 
   { 
      frm_.myTextBox.Text = "Hey this updated!!"; 
   }));

これにより、myTextBox.Textプロパティセッターが、frm_が作成されたWindowsフォームのGUIスレッドを介して呼び出されます。

于 2012-11-16T02:21:03.270 に答える