Nacitanie hodnot do modalneho formulara – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Nacitanie hodnot do modalneho formulara – .NET – Fórum – Programujte.comNacitanie hodnot do modalneho formulara – .NET – Fórum – Programujte.com

 

Eversmann0
Návštěvník
5. 2. 2010   #1
-
0
-

ako dostanem hodnoty do modalneho formulara z druheho formulara?? pre niekoho to moze byt dost primitivne, ale neviem s tym pohnut. mam dva ComboBoxy na prvom formulari a vybratu hodnotu uzivatelom potrebujem dostat do druheho formulala.
V modalnom formulari mam kod...



Form2 X = new Form2();
int J = Int32.Parse(X.comboBox1.Text);
int I = Int32.Parse(X.comboBox2.Text);

problem je v tom, ze mi to vracia null, ako nato???
diky moc

Nahlásit jako SPAM
IP: 85.135.155.–
liborb
~ Redaktor
+18
Guru
8. 2. 2010   #2
-
0
-

Jednak ti tam chybí X.Show... . A potom, pokud chceš načítat data z toho otevřeného dialogu, který ovšem v době Int32.Parse( .... už zase neexistuje, tak si ty hodnoty musíš před zavřením dialogu uložit do svým proměnných. A z těch to pak předat dále v programu.

Nahlásit jako SPAM
IP: 85.207.166.–
Eversmann0
Návštěvník
8. 2. 2010   #3
-
0
-

To liborb : to ma napadlo, ale ako?? vyriesol som to nakoniec tak, ze som ich ulozit do vlastnosti tag modalneho formulara, odkial som si ich potom nacital. ide o dost neciste riesenie, ale nic lepsie sa mi nepodarilo spravit. inac dik!

Nahlásit jako SPAM
IP: 195.28.71.–
liborb
~ Redaktor
+18
Guru
8. 2. 2010   #4
-
0
-

Do třídy dialogu si přidáš 2 proměnné (typu int) a před uzavřením dialogu uděláš Int32.Parse(...). V tom druhém formuláři přistupuješ už k těm tvým dvou int proměnným (get).

Nahlásit jako SPAM
IP: 85.207.166.–
Eversmann0
Návštěvník
10. 2. 2010   #5
-
0
-

To liborb : sorry, ale aj tak som nepochopil. moje vedomosti su dost mizerne, tak mohol by si ukazat na priklade, diky!

Nahlásit jako SPAM
IP: 195.28.71.–
liborb
~ Redaktor
+18
Guru
10. 2. 2010   #6
-
0
-

Do definice třídy Form2 přidej 2 proměnné.
Tam kde teď ukládáš ty hodnoty do tag, ulož hodnoty do int proměnných (Int32.Parse(...)).
Pak k nim (k těm proměnným) přistupuj z Form1.

Něco takového:



public partial class Form2 : Form
{
int J;
int I;

....

Nahlásit jako SPAM
IP: 85.207.166.–
Eversmann0
Návštěvník
16. 2. 2010   #7
-
0
-

To liborb : a tu je ten problem, ze ked pristupujem k nim, tak maju nulovu hodnotu. pripajam zdrojak. ako prvy spustam form2. chcem aby sa mi vypisal text v TB1 vo Form1, ktory napisem do TB1 vo Form2.

Form2



namespace prenesenie_premennej
{
public partial class Form2 : Form
{
string text;
public Form2()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
Form1 X = new Form1();
text = textBox1.Text;
X.Show();
}
}
}


Form1


namespace prenesenie_premennej
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
Form2 j= new Form2();
textBox1.Text = j.text;
}
}
}

Nahlásit jako SPAM
IP: 195.28.71.–
LukoSS
~ Anonymní uživatel
73 příspěvků
16. 2. 2010   #8
-
0
-

Myslím, že pro takové přenášení informací mezi formulářema je nejlepší použít Eventy. Stačí před zavřením toho Form2 zavolat událost, která vezme obsah těch proměnných a předá je prvnímu formuláři.

Nahlásit jako SPAM
IP: 88.103.252.–
liborb
~ Redaktor
+18
Guru
16. 2. 2010   #9
-
0
-

Způsobů, jak to řešit je několik .... ale mě trochu zaráží ten zdrojový kód. Máš Form1, v jeho OnLoad otevřeš Form2, ve kterém je tlačítko, po jehož stisku zobrazuješ Form1 .... nějak mi to hlava nebere :smile11:

Nahlásit jako SPAM
IP: 85.207.166.–
Eversmann0
Návštěvník
16. 2. 2010   #10
-
0
-

To liborb : co presne myslis, no mam tam prehodene formulare, ale to je jedno, pokial myslis syntax, tak neviem. ako nato?? co sa tyka eventov, tak nemam ani tusenie, ako by som to spravil, diky!

Nahlásit jako SPAM
IP: 195.28.71.–
liborb
~ Redaktor
+18
Guru
16. 2. 2010   #11
-
0
-

Co se mi na tom nelíbilo? Přijde mi to trochu rekurzivní :smile1: .

Tady je kód ... Form1 zobrazuje Form2 (jako modální) a předávají si textovou hodnotu tam i zpět:



public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
Form2 form = new Form2();

form.textik = textBox1.Text;

form.ShowDialog();

textBox1.Text = form.textik;
}
}




public partial class Form2 : Form
{
public String textik;

public Form2()
{
InitializeComponent();
}

private void button2_Click(object sender, EventArgs e)
{
textik = textBox2.Text;
Close();
}

private void Form2_Load(object sender, EventArgs e)
{
textBox2.Text = textik;
}
}

Nahlásit jako SPAM
IP: 85.207.166.–
Eversmann0
Návštěvník
16. 2. 2010   #12
-
0
-

To liborb : diky moc, funguje to uplne super!!!

Nahlásit jako SPAM
IP: 195.28.71.–
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, 55 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ý