Meget simpelt spørgsmål, men ska bruge hurtigt så tilbyder pæn sum points. :)
Hvordan kan man sende strings fra den ene form til den anden? f.eks. jeg har en loginform, og jeg vil gerne ha den til og skrive brugernavnet på en anden form når man er logget ind? sku være super enkelt, kan bar ikke lige regne det ud..
Login form skal have en reference til den anden form - saa kan den saette en property.
Men hele tricket er at sikre at den har den reference. Hvis den anden form aabner login formenen kan den sende this med over i login formens constructor - der saa gemmer en ref til den.
uden og have kigget i koden, så mener jeg nok det er hvad jeg har lavet et eksempel på her.. hvordan 2 forms kommunikere med hinanden. www.kalp.dk/ToForms.zip
Hvis de to forms kører i hver sin tråd er det nødvendigt med en Invoke for at få det til at spille. Du kan evt. spørge på InvokeRequired() i din property, for at checke det. Under alle omstændigheder skal du nok finde ud af det, for frameworket kaster en exception hvis du prøver at gøre det uden Invoke...
Har fattet det med classes som der står i det link. Men hvordan "kalder" jeg mine strings og data på en anden form? :s står der ikke rigtigt noget om på msdn's side..
public partial class Form1 : Form { public string navn = "hej"; public string lol { get { return navn; } set { navn = value; } } public Form1() { InitializeComponent(); }
private void button1_Click(object sender, EventArgs e) { Form2 form = new Form2(); form.Show(); }
private void button2_Click(object sender, EventArgs e) { Form2 form = new Form2(); form.label1.Text = lol; } }
Jeg udpeger de forkerte områder for dig og så må du tænke dig om en ekstra gang:) Du har i øvrigt kildekoden fra tidligere (måske forstår du den nu efter og have indhentet ny viden fra arne_v's link.
FORKERT! public string navn = "hej"; Hint: Bør være måske være private når du netop har lavet properties;)
FORKERT! Form2 form = new Form2(); Hint: Bør nok medtage en reference til din form i konstruktøren, dvs. det skal din Form2 så understøtte at kunne modtage.
FORKERT! form.label1.Text = lol; Hint: du burde have fået et hint fra din kompiller. Du mangler lige nogle " " rundt om lol.
// FORKERT! form.label1.Text = lol; Hint: du burde have fået et hint fra din kompiller. Du mangler lige nogle " " rundt om lol. // Da ikk når når lol er min string der er declared øverst oppe?
Kan du forklare det med referencen til form'en ? er ikke sikker på jeg forstår.
meh.. Har lige testet det. Det spiller bare, så det burde ikke give Invoke problemer hos dig.
Synes godt om
Ny brugerNybegynder
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.