Forum » Programiranje » [C#] Izmenjava/posodabljanje podatkov v formah brez Show()
[C#] Izmenjava/posodabljanje podatkov v formah brez Show()
dice7 ::
Imam 2 formi. V Form1 je en timer, ki recimo šteje, v Form2 je pa textBox, ki izpisuje koliko je timer preštel. In mene zdaj zanima, kako se naj textBox v Form2 spreminja/šteje brez da bi bilo potrebno Form2 ponovno prikazati (Form2 frm = new Form2(); frm.Show();).
Prebiral sem tudi načine, kako izmenjavati podatke preko form in sem poskusil 'konstruktorski' in 'objekti' način in mi nista uspela (da bi se posodabljalo, drugače je preko .Show(); delovalo), ostala dva načina, ki sta 'property' in 'delegate' način pa ne razumem najbolje.
Pomoč :(
Prebiral sem tudi načine, kako izmenjavati podatke preko form in sem poskusil 'konstruktorski' in 'objekti' način in mi nista uspela (da bi se posodabljalo, drugače je preko .Show(); delovalo), ostala dva načina, ki sta 'property' in 'delegate' način pa ne razumem najbolje.
Pomoč :(
nightrage ::
Torej ti instanciraš formo, jo prikažeš preko show metode in potem hočeš posodobiti besedilo v textBox-u na tej formi. Lahko bi implementiral Interface in bi nato posodabljal preko njega.
Koda ni v celoti napisana, lahko pa bi te pripeljala na pravo pot, čeprav je za take zadeve več načinov.
public interface IDataRefresher
{
void refresh(int stevec);
}
public class Form2 implements IDataRefresher
{
void I2.refresh(int stevec)
{
textBox.text = stevec.toString();
}
public IDataRefresher GetRefresher()
{
return this;
}
}
public class Form1
{
Form2 forma = new form2();
public timer ....
{
forma2.GetRefresher().refresh(time);
}
}
Koda ni v celoti napisana, lahko pa bi te pripeljala na pravo pot, čeprav je za take zadeve več načinov.
Zgodovina sprememb…
- spremenil: nightrage ()
paco ::
V Form2 v designerju textboxu nastavi lastnost Modifiers na public.
potem pa v form1 preprosto dostopaš do gradnika.
potem pa v form1 preprosto dostopaš do gradnika.
public partial class Form1 : Form
{
Form2 Obrazec = new Form2();
Timer T1 = new Timer();
public Form1()
{
InitializeComponent();
T1.Tick += new EventHandler(Timer1_Tick);
T1.Interval = 1000;
T1.Start();
}
void Timer1_Tick(object sender, EventArgs e)
{
Obrazec.textBox1.Text = "neka vrednost";
}
private void button1_Click(object sender, EventArgs e)
{
Obrazec.Show();
}
}
It iz aj.
Vredno ogleda ...
| Tema | Ogledi | Zadnje sporočilo | |
|---|---|---|---|
| Tema | Ogledi | Zadnje sporočilo | |
| » | C# začetniško vprašanje - klicanje metodeOddelek: Programiranje | 1169 (939) | vorantz |
| » | C#, TextBox in PopUp formaOddelek: Programiranje | 1206 (1100) | MarCar |
| » | C# iz form2 v form1,textboxiOddelek: Programiranje | 2052 (1678) | Keki |
| » | C# PomočOddelek: Programiranje | 1575 (1400) | jizzer |
| » | c# classOddelek: Programiranje | 2460 (2054) | japol |