Autor Beitrag
Captain_Jack_Sparrow
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 32



BeitragVerfasst: Sa 25.02.06 21:49 
Hallo!

Ich weiß ich sollte googeln und ich dachte auch, dass ich etwas finde aber entwerder finde ich nichts oder das was ich finde funktioniert irgendwie nicht :(
Folgendes:

Ich habe in Form1 eine Variable und will in Form2 mit dieser Variable weiterarbeiten. Wie kann ich das anstellen?
(Also wie kann ich die Variable weitergeben?)

Danke für die Antworten
Robert_G
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 416


Delphi32 (D2005 PE); Chrome/C# (VS2003 E/A, VS2005)
BeitragVerfasst: Sa 25.02.06 21:58 
Übergib sie ihr im Constructor, setzte Form1 als Parent von Form2 und lege eine öffentliche Read property für den Wert an, es gibt da sicher 5.000 Möglichkeiten...


Oder: Frage dich einfach mal ob du überhaupt soviel Logik in einem dummen GUI Control wie einem Form haben willst, dass du den Wert sogar im nächsten View brauchst... ;)
Captain_Jack_Sparrow Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 32



BeitragVerfasst: Sa 25.02.06 23:07 
Hmm.. das ist irgendwie wiedermal zu hoch für mich :oops:

Ich will "einfach" das Label labAnz00001.Text von Form1 (Was grundsätzlich eine ushort ist, bzw. in eine solche convertiert werden kann) als Variable in Form2 verwenden können. Das muss doch irgendwie relativ einfach möglich sein...
Robert_G
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 416


Delphi32 (D2005 PE); Chrome/C# (VS2003 E/A, VS2005)
BeitragVerfasst: Sa 25.02.06 23:19 
user profile iconCaptain_Jack_Sparrow hat folgendes geschrieben:
Hmm.. das ist irgendwie wiedermal zu hoch für mich :oops:
Ganz direkt würde ich dir dann erstmal empfehlen die Sprache zu beherrschen *bevor* du GUIs zusammenklickst. Dabei hat noch niemand schnell eine Sprache gelernt.

Zitat:
Ich will "einfach" das Label labAnz00001.Text von Form1 (Was grundsätzlich eine ushort ist, bzw. in eine solche convertiert werden kann) als Variable in Form2 verwenden können. Das muss doch irgendwie relativ einfach möglich sein...
Na dann lege doch einfach eine read property im ersten Form an, die dir den Wert des Labels als int ausgibt.
ausblenden C#-Quelltext
1:
2:
3:
4:
public int Miep
{
  get{return int.Parse(deinLabel.Text);}
}


Jetzt braucht du vom zweiten Form noch eine Referenz auf das erste. Das wäre mit dem Parent möglich.

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
using(Form dlg = new Form2)
{
  dlg.Parent = this;

  if(dlg.ShowDialog() == DialogResult.OK)
   ...
}


In Form2 kanst du dir eine property anlegen, die dir Parent auf Form1 typisiert zurückgibt:
ausblenden C#-Quelltext
1:
2:
3:
4:
Form1 MainForm
{
  get{return Parent as Form1;}
}


Trotzdem empfehle ich dir meinen ersten Absatz. ;)
Oerb
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Do 23.08.07 17:10 
Eine Lösung, die ich gefunden habe ist, dass man die Deklaratione einer TextBox oder eines Labels in einem Formular nicht Private sonder Internal macht. Damit kann dann bei einem Event im Formular1 auf das private deklarierte Widget des Formular2 zugegriffen werden. Dabei einthält die textBox1 im Formular1 den Wert, der in Formular2 im lblForm1Wert Lable angezeigt werden soll.

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
//Deklarationsteil in Form2.Designer.cs
internal DevExpress.XtraEditors.LabelControl lblForm1Wert;
//Event in Form1
  private void button1_Click(object sender, EventArgs e)
       {
           Form2 frm2 = new Form2();
           frm2.lblForm1Wert.Text = this.textBox1.Text;         
           frm2.Show(); 
       }


Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Do 23.08.07 17:56 
Ich finde es toll, wenn du dich wirklich für diese Antwort hier angemeldet hast :D . Ich muss dich aber trotzdem darauf hinweisen, dass die Lösung nicht gerade die saubere Art und Weise ist. Die beiden von Robert vorgeschlagenen Wege bedeuten nur minimalen Mehraufwand, weshalb es eigentlich keinen Grund gibt, die Daten nicht auf solche Weise zu kapseln.