Avatar
Michaal.K
Člen
Avatar
Michaal.K:

Ahoj,
chtěl jsem jestli lze nějak zjistit jaké okno aplikace je právě aktivní?
Zkoušel jsem to takhle:

Form fc = Application.OpenForms["SettingsForm"];
            if (fc == null)
                return;

ale to nefunguje tak jak bych potřeboval. Mám MainForm a na něm můžu otevřít okno nastavení a teď bych potřeboval zjistit že je aktivní okno nastavení.
Díky

 
Odpovědět 18. března 12:01
Avatar
Nahoru Odpovědět 18. března 12:06
Život je příliš krátký na to, abychom bezpečně odebírali USB z počítače..
Avatar
Jakub Šilhavý:

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ý.

Nahoru Odpovědět 18. března 17:13
Život je pes, a proto žít je psina.
Avatar
Michaal.K
Člen
Avatar
Odpovídá na Jakub Šilhavý
Michaal.K:

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);
 
Nahoru Odpovědět 21. března 10:38
Avatar
Odpovídá na Michaal.K
Michal Štěpánek:

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...

Editováno 21. března 11:31
Nahoru Odpovědět  ±0 21. března 11:30
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Michaal.K
Člen
Avatar
Odpovídá na Michal Štěpánek
Michaal.K:

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í...

 
Nahoru Odpovědět 21. března 13:50
Avatar
Odpovídá na Michaal.K
Michal Štěpánek:

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ů.

Nahoru Odpovědět  +1 21. března 14:08
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Michaal.K
Člen
Avatar
Odpovídá na Michal Štěpánek
Michaal.K:

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é :-)

 
Nahoru Odpovědět 21. března 14:54
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 8 zpráv z 8.