Přejít na hlavní obsah

Jak propojit dva formuláře ve Windows Forms: podrobný průvodce pro začátečníky

Když vyvíjíte aplikaci na platformě Windows pomocí Windows Forms, je důležité vědět, jak mezi sebou propojit dvě formy. To umožňuje vytvářet složitější a interaktivnější uživatelská rozhraní, která umožňují interakci uživatele s různými formami. V tomto článku se podíváme na podrobný průvodce pro začátečníky pro propojení dvou formulářů ve Windows Forms.

Jedním ze způsobů komunikace mezi formami je použití událostí. Tato metoda je založena na principu odesílání a přijímání událostí mezi různými formami. Pomocí tohoto přístupu je možné hlásit informace z jednoho formuláře na druhý a také reagovat na akce uživatele. Pro implementaci tohoto mechanismu je nutné nainstalovat obslužné rutiny událostí na první formulář a určit událost, která bude v případě potřeby vyvolána.

Dalším způsobem komunikace obou forem je přenos dat prostřednictvím konstruktoru nebo vlastností. V tomto případě jsou data přenášena přímo z jednoho formuláře do druhého. Tato metoda se často používá k přenosu informací o elementu vybraném uživatelem do jiné formy pro následné zpracování. Pro realizaci tohoto přístupu je nutné vytvořit návrhář s parametry na přijímacím formuláři a poté předat potřebná data při volání tohoto formuláře z prvního formuláře.

Propojení dvou forem ve Windows Forms je důležitým aspektem vývoje aplikací na této platformě. Díky tomu je možné vytvářet složitější a zajímavější rozhraní, která umožňují interakci uživatele s různými formami. V tomto článku jsme se podívali na dva způsoby, jak propojit formuláře - použití událostí a přenos dat prostřednictvím konstruktoru nebo vlastností. Tyto metody umožňují pracovat s formami tak, že jedna forma může interagovat s druhou a pomocí přenesených dat provádět různé operace. Doufejme, že tento podrobný průvodce vám pomůže naučit se základy propojení formulářů ve Windows Forms a aplikovat je na své projekty.

Jak propojit dva formuláře ve Windows Forms

Propojení dvou formulářů ve Windows Forms umožňuje přenášet data mezi formuláři a zpracovávat události, které se dějí v jedné formě, do druhé.

Chcete-li propojit formuláře ve Windows Forms, musíte postupovat podle následujících kroků:

  1. Vytvořit nový projekt Windows Forms aplikace ve Visual Studio.
  2. Přidat nový formulář do projektu. Chcete-li to provést, přejděte do Solution Explorer, klikněte pravým tlačítkem na projekt a vyberte možnost "Add" - > "Windows Form".
  3. Otevřete soubor s prvním formulářem (Form1.cs) a přidejte kód, který otevře druhý formulář, když stisknete tlačítko nebo jinou událost. Například:

private void OpenForm2Button_Click(object sender, EventArgs e)

Form2 form2 = new Form2();

V tomto příkladu vytvoříme novou instanci druhého tvaru (Form2) a ukážeme ji pomocí metody Show ().

  1. Otevřete soubor s druhým formulářem (Form2.cs) a přidejte kód pro přenos dat mezi tvary. Můžete například přidat veřejné Vlastnosti nebo metody druhého formuláře, abyste získali data z prvního formuláře.

public string GetDataFromForm1()

V tomto příkladu přidáváme veřejnou metodu GetDataFromForm1 (), která vrací text z textového pole textBox1.

  1. Přejděte zpět na soubor prvního formuláře (Form1.cs) a zavolejte metodu nebo vlastnost druhého formuláře, abyste získali data. Například:

private void ProcessForm2DataButton_Click(object sender, EventArgs e)

Form2 form2 = new Form2();

string dataFromForm1 = form2.GetDataFromForm1();

/ Zpracování údajů z druhého formuláře.

V tomto příkladu vytvoříme novou instanci druhého formuláře (Form2) a vyvoláme metodu GetDataFromForm1(), abychom získali data z prvního formuláře.

Propojili jsme tedy dvě formy ve Windows Forms, což umožňuje přenášet data mezi nimi a zpracovávat události, které se dějí v jedné formě, do druhé.

Příprava na práci

Před propojením dvou formulářů ve Windows Forms je třeba provést několik předběžných kroků.

1. Otevřete Visual Studio a vytvořte nový projekt typu Windows Forms Application.

2. V Solution Explorer vytvořte dva tvary: hlavní tvar (Form1) a druhý tvar (Form2) pomocí příslušných ovládacích prvků z panelu nástrojů.

3. Nastavte vlastnost StartPosition pro každou formu v hodnotě CenterScreen nebo Manual nastavit pozici formulářů na obrazovce.

4. Aby bylo možné procházet mezi tvary, je nutné provést některá nastavení.

Aktivujte hlavní formulář (Form1), otevřete okno formuláře Windows a vyberte kartu Vlastnosti.

V sekci Modifiers nastavte hodnotu pro vlastnosti Modifiers the význam Public.

Tímto způsobem získáte přístup k formuláři z jiných částí aplikace.

Přidání nové formy

Chcete-li propojit dva formuláře ve Windows Forms, musíte postupovat podle následujících kroků:

1. Vytvoření nové formy:

Než spojíte tvary, musíte vytvořit nový tvar. Chcete-li to provést, musíte kliknout pravým tlačítkem na projekt v okně Průzkumník řešení a vybrat položku nabídky Přidat > formulář Windows. V okně, které se otevře, vyberte typ formuláře (například" Windows form") a klikněte na"Přidat". Nyní máte novou formu, kterou můžete spojit se základní formou.

2. Vytvoření instance nové formy:

Po vytvoření nového tvaru je nutné vytvořit instanci tohoto tvaru v kódu základního tvaru. Chcete-li to provést, můžete v základním kódu deklarovat proměnnou nového typu formuláře a vytvořit instanci pomocí příkazu "Nový". Pokud se například nový tvar nazývá "Form2", může kód vypadat následovně:

Form2 form2 = new Form2();

3. Zobrazení nového formuláře:

Chcete-li zobrazit nový formulář, musíte u vytvořené instance formuláře vyvolat metodu "Show ()". Například:

form2.Show();

Po vyvolání metody "Show ()" se na obrazovce zobrazí nový formulář.

Nyní máte dva související tvary, základní tvar a nový tvar, které můžete použít společně uvnitř aplikace Windows Forms.

Vytváření spojení mezi formami

Komunikace pomocí konstruktoru

Jedním způsobem, jak vytvořit spojení mezi tvary, je přenést odkaz na jeden tvar do jiného tvaru prostřednictvím konstruktoru.

public class Form1 : Form>
public class Form2 : Form>

V tomto příkladu tvar Form1 vytváří objekt tvaru Form2 a přenáší odkaz na sebe prostřednictvím konstruktoru. Formulář Form2 uloží odkaz na formulář Form1 do pole form1.

Komunikace pomocí vlastností

Dalším způsobem, jak vytvořit spojení mezi tvary, je použití vlastností. V takovém případě bude mít jeden formulář vlastnost, která uchová odkaz na jiný formulář.

public class Form1 : Form>
public class Form2 : Formset < form1 = value; >>>

V tomto příkladu tvar Form1 vytvoří objekt tvaru Form2 a nastaví vlastnost Form1Instance tohoto objektu na sebe. Formulář Form2 uloží odkaz na formulář Form1 do pole form1.

Vytvořením spojení mezi tvary pomocí konstruktoru nebo vlastnosti Můžete přistupovat k prvkům jiného tvaru a provádět potřebné operace.

Přenos dat mezi formuláři

Nejjednodušší způsob přenosu dat mezi formami je použití tvůrce formuláře. Můžete si vytvořit svůj vlastní návrh tvaru a přenést do něj potřebná data při vytváření instance formuláře. Pokud například potřebujete převést hodnotu proměnné "name" z jednoho tvaru do druhého, můžete vytvořit konstruktor pro druhý tvar, který bere hodnotu" name " jako argument:

public partial class SecondForm : Form>

Když vytvoříte instanci druhého tvaru z prvního tvaru, můžete do konstruktoru přenést hodnotu "name" :

string name = "John";SecondForm secondForm = new SecondForm(name);secondForm.Show();

Dalším způsobem přenosu dat mezi formami je použití vlastností a forem. Můžete vyhlásit vlastnost nebo metodu druhého formuláře, která vám umožní nastavit nebo získat hodnotu proměnné "name". Můžete například přidat vlastnost "Name" do druhého formuláře:

public partial class SecondForm : Form// . >

Hodnotu vlastnosti "Name" můžete nastavit z prvního formuláře takto:

SecondForm secondForm = new SecondForm();secondForm.Name = "John";secondForm.Show();

Druhá forma může získat hodnotu vlastnosti "Name" následovně:

public partial class SecondForm : Form

Použití nástroje pro tvorbu tvarů a vlastností a metod tvarování tak umožňuje efektivní přenos dat mezi formami v aplikacích Windows Forms.

Správa formulářů v aplikaci

Aplikace Windows Forms mohou mít několik tvarů, které představují různá okna nebo obrazovky uživatelského rozhraní. Správa formulářů umožňuje interakci s každou formou a provádění přechodů mezi nimi.

Pro správu formulářů v aplikaci je nutné použít třídy Form a Application. Třída Form představuje samostatnou formu aplikace a třídu Application je zodpovědný za spuštění a zastavení aplikace.

Aplikace má obvykle hlavní formulář, který se objeví při spuštění programu, a další formuláře, které se mohou podle potřeby otevřít.

Chcete-li otevřít nový tvar, musíte vytvořit instanci třídy tvaru a vyvolat metodu Show. Například:

Form2 form2 = new Form2();form2.Show();

Metoda Show umožňuje zobrazit tvar a přejít k němu. Pokud potřebujete otevřít formulář a zároveň zablokovat další práci s hlavním formulářem, použijte metodu ShowDialog:

Form2 form2 = new Form2();form2.ShowDialog();

Metoda ShowDialog blokuje interakci uživatele s hlavním formulářem až do uzavření dodatečného formuláře. To je užitečné, když je třeba získat výsledek práce s další formou před pokračováním programu.

K uzavření formuláře lze použít metodu Close, který uzavírá tvar. Například:

this.Close();

Pokud potřebujete zavřít všechny formuláře a dokončit aplikaci, použijte metodu Exit třídy Application:

Application.Exit();

Metoda Exit zastaví aplikaci a zavře všechny otevřené formuláře.

Správa formulářů v aplikaci tak umožňuje vytvářet a otevírat nové formuláře a v případě potřeby aplikaci zavírat a dokončovat. To vám umožňuje vytvářet vícekonové aplikace s přechody mezi různými obrazovkami uživatelského rozhraní.

Uzavření souvisejících formulářů

Když v systému Windows Forms propojíme dvě formy, vyvstává otázka, jak tyto formuláře správně zavřít, aby program pokračoval v správném fungování. V této části se podíváme na několik způsobů uzavření souvisejících formulářů.

Prvním způsobem je použití události uzavření formuláře (FormClosing). K této události může být připojena metoda, která provede potřebné kroky při uzavření formuláře. Spojenou formu můžeme uzavřít například vyvoláním metody Close ().

Druhým způsobem je použití metody ShowDialog () při otevření druhé formy. Tato metoda blokuje volající formu, dokud nebude druhá forma uzavřena. Když se druhý formulář zavře, program pokračuje v provádění ihned po vyvolání metody ShowDialog().

Třetím způsobem je použití globálního objektu třídy Application a jeho metody Exit (). Volání této metody ukončí všechny spuštěné aplikace. Při používání této metody je třeba být opatrný, protože může vést k nežádoucím důsledkům pro jiné části programu.

ZpůsobPříklad kódu
Событие Formuzavření private void Form1_FormClosing (odesílatel objektu, FormClosingEventArgs e)
Form2 form2 = nový Form2();
form2.Uzavřít();
>
Mетод ShowDialog() private void button1_Click (odesílatel objektu, EventArgs e)
Form2 form2 = nový Form2();
form2.ShowDialog ();
>
Mетод() private void button1_Click (odesílatel objektu, EventArgs e)
Aplikace.Exit();
>

Výběr způsobu uzavření souvisejících formulářů závisí na požadavcích a vlastnostech každého konkrétního projektu. Je důležité správně uspořádat zavírání formulářů, aby se předešlo problémům a aby byl program uživatelsky přívětivější.

Otázka-odpověď

Jak propojím dva formuláře ve Windows Forms?

Pro propojení dvou formulářů ve Windows Forms je nutné použít třídy Application a Form. Pomocí třídy aplikace můžete vytvořit instanci formuláře a poté použít metodu Show() k zobrazení tohoto formuláře. Pro vázací tvar lze vytvořit instanci jiného tvaru a přenést ji do konstruktoru. Poté je možné vyvolat metodu ShowDialog (), aby se propojený tvar zobrazil modálně.

Jak vytvořím instanci formuláře ve Windows Forms?

Chcete-li vytvořit instanci formuláře ve Windows Forms, musíte použít klíčové slovo new a název třídy formuláře. Pokud je například název třídy tvaru MyForm, bude vytvoření instance vypadat následovně: MyForm form = new MyForm();

Jak zobrazím propojený tvar modálně?

Chcete-li zobrazit související formulář modálně ve Windows Forms, musíte pro instanci formuláře zavolat metodu ShowDialog (). Pokud je například název instance formuláře form, pak bude volání metody vypadat takto: form.ShowDialog (); přitom uživatel nebude moci komunikovat s hlavním formulářem před uzavřením propojeného formuláře.

Jak propojím dva tvary ve Windows Forms pomocí tlačítka?

Chcete-li propojit dva formuláře ve Windows Forms pomocí tlačítka, musíte přidat obslužnou rutinu události tlačítka. Ve Zpracovateli se vytvoří instance vázaného tvaru a vyvolá se metoda ShowDialog(). Například: private void button1_Click (object sender, EventArgs e)

Je možné přenášet data mezi souvisejícími formami ve Windows Forms?

Ano, je možné přenášet data mezi souvisejícími formami ve Windows Forms. K tomu lze do souvisejícího formuláře přidat veřejné Vlastnosti nebo metody, které budou použity k přenosu dat. Je například možné vytvořit vlastnost v souvisejícím formuláři s datovým typem, který představuje přenášená data, a nastavit její hodnotu před vyvoláním metody ShowDialog().