Avatar
svicarka
Člen
Avatar
svicarka:

Dobrý den,
nenašel by se dobrý člověk, který by mi poradil. Potřebovala bych v programu v C#, aby kliknutím na tlačítko v určitém Formu, byla změněna hodnota labelu v jiném Formu. Tedy zkoušela jsem to (asi dosti naivně) tak, že bych do klasického zápisu programu napsala za daný label font, z kterého pochází např.
label5(Font6).Text = Convert.ToStrin­g(body);
:)poradil by mi někdo? Moc děkuji

 
Odpovědět 25.5.2014 14:14
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na svicarka
Jan Vargovský:

Co za typ je ta proměnná "body"? a co má znamenat to (Font6)?

 
Nahoru Odpovědět 25.5.2014 14:18
Avatar
Lako
Člen
Avatar
Odpovídá na svicarka
Lako:

Musíš si udržovat instance těch 2 formů...
V jednom vytvoříš ten druhý a pošleš mu instanci toho prvního.

Form2 form2 = new Form2(this);

konstruktor bude přijímat parametr

Form1 form1

.
Pak tedy ve form2 reáguješ na událost:

form1.nějaká hodnota = něco něco...

Dodatek:
Takové řešení je vlastně blbě..
Dodatek 2: Výrazně doporučuji přejít (je to tak správě Jan Vargovský ?) na wpf, kde se tyhle problémy řeší viewmodelem, který si měníš jak se ti zlíbí a to zobrazení do druhéého "formu" to řeší samo.

 
Nahoru Odpovědět 26.5.2014 15:01
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na Lako
Jan Vargovský:

Nevím co s tím všichni máte. Lidi pracují ve WF, a vy jim pořád dokola mlátíte o hlavu WPF. Když neumí řešit předávání dat mezi formy a nezná ani ten nejzákladnější návrhový vzor, tak proč jim pořád cpete to WPFko? Naučit se MVVM a x dalších novinek ve WPF je jako skočit do vody, když neumíte plavat...

 
Nahoru Odpovědět  +2 26.5.2014 15:08
Avatar
svicarka
Člen
Avatar
svicarka:

Děkuji za odpovědi, naštěstí to není nijak akutní, pouze se ve škole učíme s C#, jen mě zajímalo, zda se tento problém dá vyřešit nějak celkem jednoduše i pro úplného začátečníka :)

 
Nahoru Odpovědět 26.5.2014 16:39
Avatar
xxxvodnikxxx
Člen
Avatar
xxxvodnikxxx:

No buďto by v tom jednom formu musela bejt vytvořená pořád instance toho druhýho (a musela by se používat přesně ta), jinak máš možnost udělat nějakou třídu jako singleton (jedináček, viz návrhový vzory) a ten se pak bude chovat jako uchovávací kontejner
(vytvoří se instance a pokaždý se potom volá getInstance nebo tak něco - že jsou data "sdíletelný" )

Nahoru Odpovědět 26.5.2014 16:51
Unix- svět, kde chcete být nulou :) (UID)
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 6 zpráv z 6.