IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
RainbowShaggy:26.1.2014 1:47

Ahoj, potřeboval bych poradit. Mám třídu a v ní nějaký text, který bych potřeboval vypsat v hlavním Formu do Labelu. Takže bych potřeboval ten Label nějak načíst v té vedlejší třídě, ale vůbec netuším jak. Popřípadě pokud by to šlo, tak uložit ten text do proměnné a tu proměnnou vytáhnout v tom hlavním Formu a vypsat zase do Labelu.

Za všechny odpovědi budu moc rád a jelikož je už dost pozdě, tak se omlouvám jestli je dotaz dost divně napsaný, což určitě je :) Díky

 
Odpovědět
26.1.2014 1:47
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na RainbowShaggy
Jan Vargovský:26.1.2014 1:59

No dotaz je určitě divně napsaný, to máš pravdu :D

Udělej si normalně propertu (vlastnost) v té třídě a asi používáš tu instanci ve formuláři, tak nastavíš tomu labelu vlastnost text na tu vlastnost co je v té tvé třídě.

 
Nahoru Odpovědět
26.1.2014 1:59
Avatar
RainbowShaggy:26.1.2014 9:02

Tak teď si říkám taky co jsem to napsal, ale to vždycky, když už skoro spím :D
Mno ve které třídě mám udělat tu vlastnost? Mám dvě, defaultní Form1.cs a player.cs.
Jinak jsem zkoušel včera pak tohle:
Form1.cs

public void StatusUpdate (string text)
{
  status1.Text = text;
}

player.cs:

Form1 statusik = new Form1();
statusik.StatusUpdate("Nejaky text");
 
Nahoru Odpovědět
26.1.2014 9:02
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovídá na RainbowShaggy
Petr Nymsa:26.1.2014 10:59

Nemůžeš ale přeci ve třídě Player založit celý Form znovu. Do třídy player si předáš buď celý Form ale přehlednější by bylo předat jenom třeba ten label.

Každopádně návrhově to není úplně dobré. Player přeci nemá nic zobrazovat, o to se stará nějaký manažer vykreslování. Tj ideálně by jsi měl reagovat na změny hráče pomocí událostí

Nahoru Odpovědět
26.1.2014 10:59
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
RainbowShaggy:26.1.2014 11:17

Dobře, tak jak mám teda nějaký text co je ve třídě player.cs (není to třída o hráči, ale přehrávači) vypsat v labelu, který se jmenuje status1 (Funguje jen ve Form1.cs). Myslel jsem, že to půjde třeba uložit do nějaké proměnné která půjde pak použít ve Form1.cs

 
Nahoru Odpovědět
26.1.2014 11:17
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na RainbowShaggy
Jan Vargovský:26.1.2014 12:37
class Player
    {
        public Label Label { get; set; }
    }
public partial class Form1 : Form
    {
        Player p = new Player();
        public Form1()
        {
            InitializeComponent();
            p.Label = label1;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            p.Label.Text = "blablabla";
        }
    }
Editováno 26.1.2014 12:37
 
Nahoru Odpovědět
26.1.2014 12:37
Avatar
RainbowShaggy:26.1.2014 13:01

Ah díky moc, jen taková maličká věc. Co tam mám ještě přidat, aby se v tom labelu vypsala proměnná status, která je ve třídě player.cs

 
Nahoru Odpovědět
26.1.2014 13:01
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na RainbowShaggy
Jan Vargovský:26.1.2014 13:46

Existuje tu tlačítko odpovědět.

A co by? Máš tam referenci na instanci toho labelu. Takže cokoliv s tím labelem uděláš v té třídě Player se promítne i ve formu...

 
Nahoru Odpovědět
26.1.2014 13:46
Avatar
Odpovídá na Jan Vargovský
RainbowShaggy:26.1.2014 14:05

Jop na odpovědět, jsem zapomněl. Jinak už jsem na to přišel, tak díky moc :)

 
Nahoru Odpovědět
26.1.2014 14:05
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 9 zpráv z 9.