

Jak v C# napsat kód aby se mi nezavřel Form2 hned po stisknutí tlačítka btnNajdi
Jak v C# napsat kód aby se mi nezavřel Form2 hned po stisknutí tlačítka btnNajdi?
// Form1
private void btnNajdiNahrad_Click(object sender, EventArgs e)
{
OknoNajdiNahrad najitNahradit = new OknoNajdiNahrad();
najitNahradit.ShowDialog();
if (najitNahradit.DialogResult == DialogResult.OK)
{
MessageBox.Show(" Výraz nenalezen.");
}
}
// Form2
private void btnNajdi_Click(object sender, EventArgs e)
{
DialogResult = DialogResult.OK; //???????????
}
Zmena predmetu, pôvodne: Jak v C# napsat kód aby se mi nezavřel Form2 hned po stisknutí tlačítka [b][i]btnNajdi (los)
Místo ShowDialog() použij jenom Show().
Případně tomu buttonu nastavit DialogResult na None.
Záleží na tom, co vlastně chceš.
Okno přestalo pracovat
Výborný popis problému.
Form2 se otevře ale Button nereaguje
Button dělá přesně to, co mu naprogramuješ. Pokud tam nebudeš mít žádný kód, tak se logicky ani nic neprovede.
Potřebuji aby mi button ve Formu2 otevřel zprávu MessageBox.Show(" Výraz nenalezen."); ve Formu1 a Form2 zůstal otevřený nevím jak nato.
To jsem nějak nepochopil. Co s tím má společného Form1?
Button ve Formu2, otevřel zprávu MessageBox.Show(" Výraz nenalezen."); která je ve Formu1
A když přímo do obsluhy události toho kliku na button napíšeš:
Tak to nebude dělat, to co chceš?
Určitě bude ale mám to takovou testovací věc abych zjistil jak ovládat z Formu2 část kódu ve Formu1.
To je v drtivé většině případů špatný přístup. Vážně to tak chceš?
Možná sem to špatně popsal. Snažím se vytvořit Dialogové okno najít nahradit do textového editoru. Potřeboval bych nějaký návod.
Tak teď jsem zmatený. S čím máš teda konkrétní problém?
S tím kódem na začátku na které sem si chci vyzkoušet přenos informací mezi Formy
Můžeš z toho Form2 vyvolávat událost a na Form1 ji zpracovávat.
https://docs.microsoft.com/en-us/dotnet/standard/events/
V tomhle případě bych ale ještě zvážil, jestli opravdu chceš, aby spolu komunikovaly přímo ty formuláře. Není totiž dobrý nápad míchat aplikační a prezentační logiku. Zjednodušeně řečeno není dobré všechno dávat do Formů. Lepší by bylo vytvořit si další třídy pro aplikační logiku a Formy používat opravdu jenom pro GUI.
Programuji teprv 3 měsíce a učím se sám moc to nechápu nebyl by nějaký konkretní příklad?
Např.: vytvoříš si třídu (třídy) reprezentující datový model tvé aplikace. Práce s daty pak budou zajišťovány voláním metod těch tříd a nikoliv to, aby ta data měnilo přímo uživatelské rozhraní (Formy). Model pak bude zajišťovat, aby informace o změnách dat předával jiným částem aplikace (třeba jinému Formu).
Zkusím zatím dík.
Vytvořil jsem si třídu tak to celkem pracuje podle mých představ.