Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
MIroslav Klobasa:17.12.2021 13:16

Mám Form1 a Form2 (VS2022 - WF Framework)
Na Form1 je tlačítko, které volá kód

private void button1_Click(ob­ject sender, EventArgs e)
{
Form2 form2 = new Form2();
form2.ShowDialog();
}
Po stisknutí se otevře formulář Form2
Při otevřeném formuláři Form2 se nemohu překliknout do Form1 (to mi i vyhovuje)

V aplikaci, kterou jsem psal před delší dobou však mohu psát do obou formulářů současně, mohu mezi nimi překlikávat. K zamezení jsem musel nastavit kontrolu, zda je okno již otevřené, jinak jsem mohl z Form1 otvírat více Form2

Nemohu najít proč mají mezi sebou formuláře jiné chování. Proč v jedné aplikaci otevření okna Form2 znepřístupní okno Form1 a v druhé aplikaci jsou obě okna stále přístupná.

Zkusil jsem: Zkoušel jsem porovnávat vlastnosti formuláře, ale rozdíl jsem nenašel

Chci docílit: To jak se chová Form1 a Form2 v nové aplikaci implicitně mi vyhovuje, ale nevím, jak to nastavit do té starší aplikace.

Odpovědět
17.12.2021 13:16
-kloin-
Avatar
weverka
Člen
Avatar
Odpovídá na MIroslav Klobasa
weverka:17.12.2021 23:40

Před jak dlouhou dobou jsi to psal? Nejsem žádný odborník, ale mohlo by to být verzí .Net nebo VS. Mohl by jsi poslat ty projekty abych se na to mohl podívat?

Nahoru Odpovědět
17.12.2021 23:40
Weby jsou budoucnost IT
Avatar
Odpovídá na weverka
MIroslav Klobasa:18.12.2021 6:11

Je to velký projekt a kód bohužel nesmím poslat. Je to tak dva roky, nebo víc. Myslím, že to začalo na .net 3.5

Nahoru Odpovědět
18.12.2021 6:11
-kloin-
Avatar
weverka
Člen
Avatar
Odpovídá na MIroslav Klobasa
weverka:18.12.2021 10:04

Tak nevím zda se od té doby něco nezměnilo. Bohužel ti s tím víc nepomůžu.

Nahoru Odpovědět
18.12.2021 10:04
Weby jsou budoucnost IT
Avatar
zelvicek
Člen
Avatar
Odpovídá na MIroslav Klobasa
zelvicek:20.12.2021 7:42

Já asi tuším.
Doporučuju tvůj původní projekt "ořezat" na reprodukovatelné minimum (velikostně srovnatelné s projektem novým). Pak porovnej nejen vlastnosti formulářů, ale i programový kód.

 
Nahoru Odpovědět
20.12.2021 7:42
Avatar
Odpovídá na zelvicek
MIroslav Klobasa:20.12.2021 9:01

Ten nový kód je velmi velmi jednoduchý - dva řádky, které= otvírají druhý formulář. Uvedená metoda je zajímavá a nakonec mě asi dovede k cíli, i když možná stále nebudu vědět proč. Mohu to ořezat a posupně zapínat jednotlivé části až se to začne chovat jinak.
Zavedl jsem do starého programu Form1 a Form2 a po spuštění spustit Form1. Vše zafunguje jako u nového. Pokud ale z Form1 zavolám původní main, otvírají se okna následující za main tak jak dříve (lze překlikávat). Omlouvám se, ale představoval jsem si jinou cestu nalezení odpovědi. (Uvítal bych i informaci o tom, co je standardní chování.)

Nahoru Odpovědět
20.12.2021 9:01
-kloin-
Avatar
Odpovídá na MIroslav Klobasa
Petr Štechmüller:20.12.2021 9:58

Ahoj, budu citovat stackoverflow.

What's the difference between Show(), ShowDialog()?

The Show function shows the form in a non modal form. This means that you can click on the parent form.

ShowDialog shows the form modally, meaning you cannot go to the parent form

Takže nahraď form2.ShowDialog(); za form2.Show(); a bude ti to fungovat tak, jak potřebuješ.

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
20.12.2021 9:58
Pokud spolu kód a komentář nekorespondují, budou patrně oba chybné
Avatar
weverka
Člen
Avatar
Odpovídá na Petr Štechmüller
weverka:20.12.2021 10:38

Před chvílí jsem našel to samé.

Nahoru Odpovědět
20.12.2021 10:38
Weby jsou budoucnost IT
Avatar
Odpovídá na Petr Štechmüller
MIroslav Klobasa:20.12.2021 10:52

Děkuji, očekával jsem podobnou drobnost. Měl jsem pocit, že jsou toto také zkoušel, ale asi ne.

Nahoru Odpovědět
20.12.2021 10:52
-kloin-
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 9 zpráv z 9.