» »

[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č :(

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.

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…

paco ::

V Form2 v designerju textboxu nastavi lastnost Modifiers na public.
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 ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

C# začetniško vprašanje - klicanje metode

Oddelek: Programiranje
101052 (822) vorantz
»

C#, TextBox in PopUp forma

Oddelek: Programiranje
61121 (1015) MarCar
»

C# iz form2 v form1,textboxi

Oddelek: Programiranje
131961 (1587) Keki
»

C# Pomoč

Oddelek: Programiranje
131427 (1252) jizzer
»

c# class

Oddelek: Programiranje
342293 (1887) japol

Več podobnih tem