0odarkio0 - Sa 18.02.17 11:35
Titel: Steuerelemente aus einer Klasse heraus erstellen
Hallo,
ich habe folgendes Problem:
Also ich habe eine Windows Form(Form1.cs) und eine Klasse(Startbildschirm.cs) und erstelle verschiedene Steuerelemente in der Klasse die mir beim Start angezeigt werden sollen.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| Panel panel1_startbildschirm = new Panel(); panel1_startbildschirm.Parent = this; panel1_startbildschirm.Dock = DockStyle.Fill; panel1_startbildschirm.BringToFront();
RichTextBox rtb1_Orte = new RichTextBox(); rtb1_Orte.Parent = panel1_startbildschirm; rtb1_Orte.Size = new Size(250, 25); rtb1_Orte.Location = new Point(10, 10); rtb1_Orte.Text = "Ort"; rtb1_Orte.ForeColor = Color.LightGray;
RichTextBox rtb2_SAPNummern = new RichTextBox(); rtb2_SAPNummern.Parent = panel1_startbildschirm; rtb2_SAPNummern.Size = new Size(250, 25); rtb2_SAPNummern.Location = new Point(rtb1_Orte.Size.Width + 10, 10); rtb2_SAPNummern.Text = "Nummern"; rtb2_SAPNummern.ForeColor = Color.LightGray; |
Das Problem ist jetzt das wenn ich die Steuerelemente aus der Klasse heraus erstelle ich keinen zugriff auf die Form1.cs habe und somit der Befehl:
C#-Quelltext
1:
| panel1_startbildschirm.Parent = this; |
nicht funktioniert weil er
this nicht kennt.
Ich habe versucht die Form zu erstellen:
C#-Quelltext
1:
| Form1 f1 = new Form1(); |
und dann statt "this", "f1" als Parent rein zu schreiben aber da passiert nichts wenn ich es starte.
Weis jemand wie ich aus der Klasse heraus das Panel
C#-Quelltext
1:
| Panel panel1_startbildschirm = new Panel(); |
in die Form hinzufügen kann?
Th69 - Sa 18.02.17 13:11
Hallo,
eine normale Klasse sollte keine Steuerelemente erstellen.
Am besten du erstellst dir mit dem Designer ein Benutzersteuerelement (UserControl), welches du dann von der Form-Klasse aus ansprechen kannst.
Für einen Startbildschirm suche auch mal nach "splash screen".
Und für die Interaktion zwischen verschiedenen (Form-)Klassen kannst du auch mal meinen Artikel
Kommunikation von 2 Forms [
http://www.bitel.net/dghm1164/programming/Kommunikation_von_2_Forms.html] durchlesen (da ist dann auch das Problem bzgl.
new Form() beschrieben und natürlich auch Lösungen dafür).