Diskuze: c# form - zjištění aktivního okna aplikace
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 8 zpráv z 8.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Ahoj, zkus toto https://msdn.microsoft.com/…vs.110).aspx
Můžeš si vyhledat funkci, která ti zjistí právě aktivní formulář nebo pokud ti to nevadí můžeš si deklarovat pro formulář "nastavení" a pro MainForm logické proměnné, které ti budou mít hodnotu true, když otevřeš příslušný formulář a hodnotu false, když bude zavřený.
Ahoj, a to myslíš funkci activeform na zjištění aktivního formuláře? Ta mi právě nějak nefungovala. Ale asi to je tím, že okno nastavení volám takto:
Form settings = new SettingsForm(this);
settings.ShowDialog(this);
Pokud voláš form jako dialog, tak přece nemusíš zjišťovat, jestli je aktivní, protože jiné okno být v tu chvíli aktivní nemůže...
Ale jak zjistím, že je otevřen tento dialog? Zatím to mám takto:
Form fc = Application.OpenForms["SettingsForm"];
if (fc == null)
return;
To funguje, ale chtěl jsem nějaké lepší řešení...
Nějak pořád nechápu, co na tom chceš zjišťovat? Pokud jakýkoliv form otevřu metodou
form.ShowDialog();
tak prostě jiný být aktivní nemůže, to by jinak bylo proti logice dialogů.
Jasně, ale já používám událost na příjem ze sériové linky a pokud
mi něco přijde po rs232 a já jsem zrovna na mainformu, tak něco udělám a
pokud mám otevřený settingsform (přes form.ShowDialog(); ) a něco mi
přijde na sériovou linku, tak udělám něco jiného.
Nevím jestli je to srozumitelné
Zobrazeno 8 zpráv z 8.