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 | 1052 (822) | vorantz |
» | C#, TextBox in PopUp formaOddelek: Programiranje | 1121 (1015) | MarCar |
» | C# iz form2 v form1,textboxiOddelek: Programiranje | 1961 (1587) | Keki |
» | C# PomočOddelek: Programiranje | 1427 (1252) | jizzer |
» | c# classOddelek: Programiranje | 2293 (1887) | japol |