タイトル : Re^7: 他画面にデータを表示する方法 投稿日 : 2009/12/04(Fri) 13:10 投稿者 : いと
返事が大変おそくなりました。 参考にさせていただきたいと思います。 > 一般的には、コントロールの操作は自フォームのみで行うべきです。 > 別フォームに操作させる事は、極力避けるようにしてください。 > > まして、a と b を互いに操作させあうようなコードにしてしまうと、 > 画面数の増減などの仕様変更に弱くなってしまいますし、 > 他プロジェクトなどへ流用する事も困難になってしまいがちです。 > > > > 一つ質問なのですが、処理開始ボタン押下でスレッドを開始しています。 > > スレッド開始する前は正しく表示されたのでスレッドと何か関係があるのでしょうか? > > そのワーカースレッドと、画面側(メインスレッド)の関係はどのようになっていますか? > 通常、画面を操作するのはメインスレッドのみとなり、ワーカースレッドから > 画面を直接操作する事はできません。 > > > もしも画面 a と b が異なるスレッドに存在しているのだとしたら、 > a 側から『b.bbb.Rows.Add(0, "テスト")』や > 『[b画面のインスタンス].bbb.Rows.Add(0, "テスト")』を > 呼び出す事はできません。イベントや BeginInvoke などを通じて、 > 「bbb の操作を b に依頼する」ような実装にする必要があります。 |