Avatar billede twg Nybegynder
06. april 2006 - 11:11 Der er 11 kommentarer og
3 løsninger

Overføre data fra en form til en anden

Hej...
Jeg har følgende kode:
Form1.cs http://pastebin.com/643698
Form1.Designer.cs http://pastebin.com/643699
Form2.cs http://pastebin.com/643701
Form2.Designer.cs http://pastebin.com/643704
Program.cs http://pastebin.com/643706

Hvordan kan jeg overføre det der bliver indtastet i textboxen form2 til textboxen i form1?

--
Venlig Hilsen
Michael Nielsen
Avatar billede casualty Nybegynder
06. april 2006 - 11:17 #1
Den letteste (men også mindst pæne) måde at gøre det på er at tilføje en event på din textbox

public void textBox1_TextChanged(){
  form2.textBox1.Text=this.textBox1.Text;
}

Textboxen i form 2 skal selvfølgelig være public

Mvh Anders
Avatar billede casualty Nybegynder
06. april 2006 - 11:18 #2
Og ydermere skal form2 erklæres globalt i form1
Avatar billede the_party_dog Nybegynder
06. april 2006 - 11:30 #3
Du behøver ikke en event på selve din textbox, du kunne lave en event på din form "Closing", som tog det indtastede og lagde det over i en string variabel. Den skulle så være public, så ville du kunne tilgå den igennem dit form2 objekt som du har over i form 1.
Avatar billede twg Nybegynder
06. april 2006 - 12:32 #4
@casualty
Jeg kan ikke helt få det til at virke... Error: Error    1    An object reference is required for the nonstatic field, method, or property 'xperten.Form1.textBox1'
Det er form2.textbox jeg vil har overført til form1.texbox

@the_party_dog
Ka du ikke komme med noget kode?
Avatar billede spaceus Nybegynder
06. april 2006 - 13:03 #5
sammenhængen er mig lidt tåget her...

Nå men, du kan jo evt. sende form1 med til form2's constructor, og så afhængig af hvad du er til, enten gøre form1.textBox1 public eller lave en setText metode.
når du så har den tekst du vil ha' i form2.textBox1 enten på en event eller ved et klik et sted, sender du bare dens tekst til den anden tekstbox
Avatar billede casualty Nybegynder
06. april 2006 - 13:11 #6
Jeg har lavet et eksempel der ligger på:
bluepage.dk/exp/formtest.zip
Avatar billede casualty Nybegynder
06. april 2006 - 13:11 #7
Avatar billede casualty Nybegynder
06. april 2006 - 13:16 #8
Eksempel hvor form1, sendes med til form2

http://bluepage.dk/exp/formtest2.zip
Avatar billede twg Nybegynder
06. april 2006 - 13:16 #9
@casualty
Det er stadig Det er form2.textbox jeg vil have overført til form1.textbox...
I dit eksembel overføre du fra form1 til form2, det ka jeg sagtens selv finde ud af... det er omvendt der er problemet...
Avatar billede spaceus Nybegynder
06. april 2006 - 13:18 #10
øhh, gøres det ikke ens begge veje ;)
Avatar billede casualty Nybegynder
06. april 2006 - 13:20 #11
Kode for en god ordens skyld:

Form1 (Uden imports, initialize, main mm.):

public class Form1 : System.Windows.Forms.Form {
    public System.Windows.Forms.TextBox textBox1;
    private System.Windows.Forms.Button button1;
    private System.ComponentModel.Container components = null;

    public Form1() {
    }

    private void button1_Click(object sender, System.EventArgs e) {
        Form2 form2 = new Form2(this);
        form2.Show();
    }
}



Form2  (Uden imports, initialize, main mm.):

public class Form2 : System.Windows.Forms.Form {
    private System.Windows.Forms.TextBox textBox1;
    private System.ComponentModel.Container components = null;
    private Form1 form1;

    public Form2(Form1 form1) {
        this.form1 = form1;
        form1.textBox1.TextChanged+=new EventHandler(textBox1_TextChanged);
    }

    private void textBox1_TextChanged(object sender, EventArgs e) {
        this.textBox1.Text = form1.textBox1.Text;
    }
}
Avatar billede twg Nybegynder
06. april 2006 - 13:25 #12
Okay... har fået det til at virke nu...

this.textBox1.Text = form1.textBox1.Text; skulle ændres til form1.textBox1.Text = this.textBox1.Text;

thx
Avatar billede casualty Nybegynder
06. april 2006 - 13:25 #13
I så fald kan du gøre således:

http://bluepage.dk/exp/formtest3.zip
Avatar billede casualty Nybegynder
06. april 2006 - 13:28 #14
Det eneste der skal laves i form2, er en public textbox

public class Form1 : System.Windows.Forms.Form {
    private System.Windows.Forms.Button button1;
    private System.Windows.Forms.TextBox textBox1;
    private System.ComponentModel.Container components = null;
    private Form2 form2;

    public Form1() {
    }

    private void button1_Click(object sender, System.EventArgs e) {
        form2 = new Form2();
        form2.textBox1.TextChanged+=new EventHandler(textBox1_TextChanged);
        form2.Show();
    }

    private void textBox1_TextChanged(object sender, EventArgs e) {
        this.textBox1.Text = form2.textBox1.Text;
    }
}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester