0
以下のコードを想像してみてください。最初のウィンドウのみが先頭に表示されます。後続のウィンドウはすべて、何らかの理由でプログラム的にフォーカスされたり、バックグラウンドで表示されたりしません。これを回避するにはどのような考えですか?ところで、静的メソッド/プロパティは許可されていませんし、グローバルプロパティでもありません。最初に表示されたウィンドウのみがフォーカス可能な理由
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Thread t1 = new Thread(CreateForm);
t1.SetApartmentState(ApartmentState.STA);
t1.Start();
t1.Join();
t1 = new Thread(CreateForm);
t1.SetApartmentState(ApartmentState.STA);
t1.Start();
t1.Join();
}
private static void CreateForm()
{
using (Form f = new Form())
{
System.Windows.Forms.Timer t = new System.Windows.Forms.Timer
{
Enabled = true,
Interval = 2000
};
t.Tick += (s, e) => { f.Close(); t.Enabled = false; };
f.TopMost = true;
Application.Run(f);
}
}
「TopMost」としてどのように2つのアイテムを持てますか? ボックスオフィスのキューを想像してみてください。あなたがキューにいる最初の人であれば、他の誰も最初の場所を取ることはできません。誰かが最初の場所を取ると、自動的に最初の場所が失われます。 達成しようとしていることを教えてください。 – SolutionYogi
Join()のため、ウィンドウは同時に作成されずにシーケンスで表示されます。 –