Použití proměnných z jiného FORMu – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Použití proměnných z jiného FORMu – .NET – Fórum – Programujte.comPoužití proměnných z jiného FORMu – .NET – Fórum – Programujte.com

 

durmitor
~ Redaktor
0
Věrný člen
1. 9. 2007   #1
-
0
-

Zdravím, hledal jsem to tu i jinde, ale bez úspěchu, pokud vítě o nějakém zdroji, stačí mi link.

Mám následující problém

1) Hlavní FORM, kde se vykonává komunikace s MySQL serverem a po sériové lince.
2) FORM pro nastavení parametrů MySQL, tam bych chtěl měnit proměnné defnované jako public v třídě hlavníh formu, bohužel mi to ale jaksi nejde... inteligentní doplnění kódu mi ani nenabídne form1 (v druhém formu samozřejmě)

Předem dekuji

Karri

Nahlásit jako SPAM
IP: ...–
Nejhorší není nemít práci. Nejhorší je nechtít práci...
mephi0
Expert
1. 9. 2007   #2
-
0
-

Nevidim problém, preto si niesom istý či som správne pochopil.
Vytvorením nového formu vlastne vytvaraš novú triedu, ktorá dedí od form. Jednoducho otvoríš kód a pridáš metody a premenné.
V hlavnom forme vytvoríš instanci a jednoducho použiješ tebou vytvorené verejné metody a premenné.

ps. nenapisal si jazyk, to by mi dosť pomohlo pri písaní odpovede ;)

Nahlásit jako SPAM
IP: ...–
Program nemusi fungovat rychle, staci ze funguje dostatecne rychle.
durmitor
~ Redaktor
0
Věrný člen
2. 9. 2007   #3
-
0
-

Právě tak mi to nechodí, uvedu příklad:

Tohle mam ve formu1



public partial class Form1 : Form
{
bool stisknuto = false;
int xpos, ypos;
string received_message = String.Empty;
public string nejaka_promenna;


a ted bych ve zdorojaku pro form2 chtel napsat neco jako



nejaka_promenna = "ahoj ted jsem naplnil promennou";


ale nejde to píše mi to že proměnná není známá v aktuálním kontextu...

Nahlásit jako SPAM
IP: ...–
Nejhorší není nemít práci. Nejhorší je nechtít práci...
DeaLer+2
Hero
2. 9. 2007   #4
-
0
-

Zdar, jestli tě dobře chápu, tak chceš z druhýho formuláře (Form2) přistupovat k veřejným členům hlavního formuláře (Form1). Musíš druhýmu formuláři předat instanci hlavního formuláře.

Form1

    public partial class Form1 : Form

{
#region Proměnné

public string formText = "Druhý formulář";

#endregion

/// <summary>
/// Inicializuje novou instanci třídy <see cref="Form1"/>.
/// </summary>
public Form1()
{
// inicializuje komponenty
InitializeComponent();
}

/// <summary>
/// Při kliknutí na tlačítko otevře druhý formulář.
/// </summary>
private void button1_Click(object sender, EventArgs e)
{
// vytvoří instanci druhého formuláře a předá mu instanci hlavního formuláře
Form2 form = new Form2(this);

// zobrazí formulář
form.Show();
}
}


Form2
    public partial class Form2 : Form

{
#region Proměnné

Form1 mainForm;

#endregion

/// <summary>
/// Inicializuje novou instanci třídy <see cref="Form2"/>.
/// </summary>
/// <param name="mainForm">Instance hlavního formuláře.</param>
public Form2(Form1 mainForm)
{
// inicializuje komponenty
InitializeComponent();

// předá instanci hlavního formuláře
this.mainForm = mainForm;
}

/// <summary>
/// Při načtení formuláře změní jeho titulek.
/// </summary>
private void Form2_Load(object sender, EventArgs e)
{
// změní titulek formuláře
this.Text = this.mainForm.formText;
}
}


Se zbytkem si určitě poradíš.

Nahlásit jako SPAM
IP: ...–
Dušan Janošík | web: djanosik.cz, @djanosik
durmitor
~ Redaktor
0
Věrný člen
3. 9. 2007   #5
-
0
-

To DeaLer:

Diky, ale tohle mi to nebere :



Form2 form = new Form2(this);


Píše mi to že není žádná přetížená metoda pro práci s argumentem

Nahlásit jako SPAM
IP: ...–
Nejhorší není nemít práci. Nejhorší je nechtít práci...
DeaLer+2
Hero
3. 9. 2007   #6
-
0
-

Ještě jednou si prohlídni kód druhýho formuláře, musíš tam přidat konstruktor, kterej ten argument zpracuje. Kdyby ti to nebylo jasný, tak pisni na ICQ ... nemá smysl to řešit tady.

Nahlásit jako SPAM
IP: ...–
Dušan Janošík | web: djanosik.cz, @djanosik
durmitor
~ Redaktor
0
Věrný člen
3. 9. 2007   #7
-
0
-

To DeaLer:

jj, díky, sem blbej sem si toho hned nevším, díky moc

Nahlásit jako SPAM
IP: ...–
Nejhorší není nemít práci. Nejhorší je nechtít práci...
rybar73
~ Anonymní uživatel
33 příspěvků
10. 10. 2007   #8
-
0
-

no pokud jde jen o par promenych taky bys je mohl ve formu1 nadefinovat jako staticke a pak brat a upravovat jejich hodnotu...
form1



.
public static string promena = "ahoj";
.


form2


form1.promena = "nazdar";



Nahlásit jako SPAM
IP: ...–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 8 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý