私は C# Windows フォーム アプリケーション開発の初心者です。
私のアプリケーションのメイン フォームでは、以下のような他のスレッドで新しいフォームを作成します。
Task.Factory.StartNew(
() =>
{
PlotForm plotForm = new PlotForm();
Application.Run(plotForm);
});
そのフォームを常にメインフォームの上に表示したい。Forms には最上位のプロパティがあります。true に設定すると、他のフォームの上にも表示されます。
インターネットでは、解決策は所有者プロパティを設定することであると言われています。このプロパティを設定すると、フォームが異なるスレッドで作成されるため、クロススレッド操作が行われます。
Task.Factory.StartNew(
() =>
{
PlotForm plotForm = new PlotForm();
plotForm.Owner = this;
Application.Run(plotForm);
});
クロススレッド操作が無効です: コントロール 'Form1' は、それが作成されたスレッド以外のスレッドからアクセスされました。
解決策を知っていますか?
ありがとう。