0
Представьте код ниже. Только первое окно появляется сверху, все последующие окна не будут и не могут быть программно сфокусированы по какой-либо причине (они появляются в фоновом режиме). Любая идея, как это сделать? BTW, статические методы/свойства не допускаются и не являются глобальным свойством.Почему только первое показанное окно является фокусным
[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»? Представьте себе очередь в кассе. Если вы первый человек в очереди, никто другой не может занять первое место. Если кто-то занимает первое место, вы автоматически теряете свое первое место. Не могли бы вы рассказать нам, чего вы пытаетесь достичь? – SolutionYogi
Благодаря соединению() окна создаются и отображаются в последовательности, но не в одно и то же время. –