» »

C# iz form2 v form1,textboxi

C# iz form2 v form1,textboxi

japol ::

Mam dva forma. Na prvem formu (form1) sta dva textboxa (textbox1 in textbox2), na drugem (form2) pa en (textbox1).

1. Rt bi primer kode, da se shran v fajl (beležnico) vsebina vseh treh textboxov (iz form1 in iz form2) in
2. da ob kliku na button1 forma2 prestavi tekst iz textboxa1 forma2 v textbox3 , ki je na formu1!

čist osnovna koda:
private void button1_Click(object sender, EventArgs e)
{
using (StreamWriter sw = new StreamWriter(@"D:\test1.txt"))
{
sw.WriteLine("Eno je:"+ textBox1.Text + Environment.NewLine);
sw.WriteLine("Drugo je:" + textBox2.Text + Environment.NewLine);
// tle še za textbox1 iz forma2
}
}

form1:
[url=http://www.shrani.si/?2i/112/1SP4tXCL/n...
form2:
[url=http://www.shrani.si/?Z/Og/4ApPv3a2/new...

hvala

Ericssony ::

Na Form1 dodaš metodo:
public string GetTextBoxString()
        {
            return textBox1.Text;
        }

in prikažeš Form2 v button2_Click eventu:
using (Form2 form2 = new Form2())
            {
                form2.ShowDialog(this);
            }

Na Form2 pa v button1_Click event:
 textBox1.Text = ((Form1) this.Owner).GetTextBoxString();

japol ::

Hvala za odgovor, ampak sm mislu glih kontra, da pobere iz forma2 in vstavi v form1.

Ericssony ::

Na Form2 dodaj lastnost (property):
public string TextBoxText
        {
            get
            {
                return textBox1.Text;
            }            
        }


Na Form1 pa po tem ko prikažeš formo dodaš:
textBox2.Text = form2.TextBoxText;

japol ::

oba primera naredita isto: prestavi tekst iz forma2 v form1 ko kliknem na križec v desnem vogalu, rt bi pa da kliknem na buton, ki je na formu2 in šele nato prestavi tekst.
hvala

Ericssony ::

Drugič razloži po slovensko >:D
Iz primerov, ki sem ti jih dal bi že lahko sam ugotovil kako narediti to kar bi rad...

V tretje gre rado zato:
na form1 dodaj metodo:
public void SetTextBoxString(string text)
        {
            textBox1.Text = text;
        }


na form2 pa v event button1_click:
((Form1) this.Owner).SetTextBoxString(textBox1.Text);

japol ::

tudi to ne bo v redu:
Moglo bi bit za textbox3, ki je na formu1:

((Form1)this.Owner).SetTextBoxString(textBox3.Text);

ampak textbox3 podčrta, ker je textbox3 na formu1,
error za form2:
The name 'textBox3' does not exist in the current context

Ericssony ::

Uf... !"#$%&/)/?
Nisem jasnoviden, da bi vedel kakšna imena si ti dal posameznim gradnikom na formi. Me tudi ne zanima. Če bi se vsaj malo potrudil bi lahko že sam pogruntal kako in kaj iz vseh zgornjih primerov...

Zadnji primer kode, naredi točno to kar bi ti rad - ko pritisneš gumb na formi 2 se skopira besedilo iz textboxa na formi 2 v textbox, ki je na formi 1. Če imaš ti drugačna imena textboxov popravi ime in ne govori, da ne dela...

japol ::

form1

form2


ob kliku na button1 (forma2) prestavi podatek iz textbox1 (forma2) v textbox2 (forma1).

Ericssony ::

In točno to rešitev imaš zgoraj... Spremeniti moraš samo ime textboxa...

japol ::

Sm pogruntou, hvala, pozabil si napisati, da je treba dati textbox v modifiers iz private v public, da ga lahk prikličeš na drugem formu, ker drugače ga podčrta. in oba primera delata, ko izklopiš form, ne pa ob kliku na button.

kitarist ::

Jaz imam podoben problem.
Imam razred seznamOseb,Form1, in Form2(forma za dodajanje oseb). V formi1 imam deklarirano oseba nova in seznamOseb seznam = new seznam(). Težava je v tem, ker mi meče exception na formi2 (event, ki se sproži ob kliku gumba "dodaj", v katerem uporabim ((Form1)this.owner).dodajOsebo(ime), če imam v metodi dodajOsebo na formi1 kakšen objekt (npr. nova = new Oseba()). Kako bi iz forme2 prenesel stringe na formo1, katere bi lahko potem uporabil kot parametre pri ustvarjanju novega objekta?

Del kode za Form1
 public partial class Form1 : Form
    {
        Form2 dodaj = new Form2();
        seznamOseb seznam= new seznamOseb();
        oseba nova;

        public Form1()
        {
            InitializeComponent();
        }

//event za odpiranje forme2 ob kliku na gumb
        private void button1_Click(object sender, EventArgs e)
        {
                dodaj.Show();
        }
//dodajanje osebe
        public void dodajOsebo(string ime)
        {
            nova=new Oseba(ime);
            seznam.add(nova);
        }


Del kode na Form2. Na formi izpolnim string polja in pritisnem gumb "dodaj"
public partial class dodajOsebo : Form
    {
        public dodajOsebo()
        {
            InitializeComponent();
        }
        private void gumbOK_Click(object sender, EventArgs e)
        {
                string ime = textBoxIme.Text

                //Tukaj mi vrže exception, zaradi objekta v metodi dodajOsebo na formi1
                ((Form1)this.owner).dodajOsebo(ime); 

                Hide();
            }
        }

kitarist ::

Sem že porihtal in sicer:

na formi1
Form2 f = new Form2();
f.owner = this;


na formi2
Form1 forma = this.Owner as Form1;

Keki ::

Najlažje je, če narediš konstruktor forme2 tako, da prejme kot argument referenco na formo1, potem lahko poljubno spreminjaš stvari na formi1 s forme2.
http://www.alfakan.si/
http://mihajerot.si/


Vredno ogleda ...

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

C#, TextBox in PopUp forma

Oddelek: Programiranje
61101 (995) MarCar
»

C# Pomoč

Oddelek: Programiranje
131400 (1225) jizzer
»

c# class

Oddelek: Programiranje
342262 (1856) japol
»

C# Program

Oddelek: Programiranje
393095 (2018) Spura
»

VB.net

Oddelek: Programiranje
71176 (1043) darkolord

Več podobnih tem