Entwickler-Ecke

WinForms - Form2 in Form1 in ListBox ein Item hinzufügen


Peron - So 07.04.13 18:28
Titel: Form2 in Form1 in ListBox ein Item hinzufügen
Hallo liebe Community,

ich bin zurzeit dabei, ein kleines Programm zu schreiben und möchte nun, dass wenn ich auf einen Button - in Form2 - klicke, dass in Form1, der Text aus der TextBox - in Form2 -, als Item in die ListBox hinzugefügt wird.

Nochmal:
- Button klicken (Form2)
- Text aus TextBox (Form2) in ListBox (Form1) als Item hinzufügen

Wer kann mir helfen?

MfG


Delphi-Laie - So 07.04.13 21:48

Mit der Veröffentlichung des betreffenden Quelltextes hätte ich Dir besser helfen können. Wo drückt der Schuh? Compilierung- oder Programmablauffehler?

Generell ist es so, daß alles, was sich auf das Formular in derselben Unit bezieht, die Dinge direkt benannt werden können, so z.B. Listbox1 (es ist sozusgaen implizit immer ein Formx. vorangestellt, wobei Formx der Name des Formulares dieser Unit ist). Möchte man auf die Formulare fremder Units und die daraufgelegten visuellen Elemente zugreifen, so muß der Formularname explizt vorangestellt werden, so z.B. in

Unit 1: Form2.Listbox1.Enabled

oder in

Unit 2: Form1.Label0.Caption.

Prinzip klar?


bummi - So 07.04.13 22:12

Vorausgesetzt Du verwendest die von Delphi vorgeschlagenen Variablen ... wobei mir nicht klar ist was Du mit TextBox meinst.


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
implementation
uses Unit1;  //  unit von "Form1" bekannt machen
{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);
begin
  Form1.ListBox1.Items.Add(Edit1.Text)
end;


Th69 - Mo 08.04.13 10:58

Hallo Peron :welcome:

in welcher Aufrufbeziehung stehen denn Form1 und Form2?
Generell sollte ein aufgerufenes Form nicht direkt auf seinen 'parent' zugreifen, sondern dafür gibt es dann Ereignisse (Events).
Weitere Details dazu habe ich in meinem Artikel Kommunikation von 2 Forms [http://www.bitel.net/dghm1164/programming/Kommunikation_von_2_Forms.html] beschrieben.

P.S.
Hallo Delphi-Laie + bummi,

hier geht es aber um C# und WinForms - nix Delphi ;-)
Aber auch in Delphi (oder BCB) ist es ein falscher Programmierstil direkt auf die (m.E. überflüssigen) globalen Form-Variablen zuzugreifen (da es gegen die Objektorientiertheit verstößt).


Peron - Mo 08.04.13 17:00

Danke Th69! Dein Artikel hat mir sehr geholfen und ich denke, dass ich mein Problem gelöst bekomme :) Wenn nicht, werde ich mich nochmal (dann mit Quelltext) melden.

MfG