Autor Beitrag
0odarkio0
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22



BeitragVerfasst: Sa 18.02.17 11:35 
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.
ausblenden 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(25025);
            rtb1_Orte.Location = new Point(1010);
            rtb1_Orte.Text = "Ort";
            rtb1_Orte.ForeColor = Color.LightGray;

            RichTextBox rtb2_SAPNummern = new RichTextBox();
            rtb2_SAPNummern.Parent = panel1_startbildschirm;
            rtb2_SAPNummern.Size = new Size(25025);
            rtb2_SAPNummern.Location = new Point(rtb1_Orte.Size.Width + 1010);
            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:
ausblenden C#-Quelltext
1:
panel1_startbildschirm.Parent = this;					

nicht funktioniert weil er this nicht kennt.
Ich habe versucht die Form zu erstellen:
ausblenden 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
ausblenden C#-Quelltext
1:
Panel panel1_startbildschirm = new Panel();					

in die Form hinzufügen kann?
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: 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 durchlesen (da ist dann auch das Problem bzgl. new Form() beschrieben und natürlich auch Lösungen dafür).