Autor |
Beitrag |
okrim
      
Beiträge: 82
Win 7
C# (VS 2010 Express)
|
Verfasst: Fr 14.02.14 17:23
Hallo an alle,
hab mal wieder ne Frage, wie kann ich den Text aus einer textBox in Form2 beim Klick auf ein Button in die Liste der comboBox in Form1 einfügen?
Würde mich freuen wenn mir einer von euch helfen könnte!
Vielen Dank im Voraus.
Gruß Mirko
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: Fr 14.02.14 17:36
Hallo!
Also wenn das, während Form2 offen ist, mehrmals passieren kann (Form2 also nicht mit Klick auf den Button schließt), würde ich das über ein Ereignis lösen, welches die erste Form "abonniert".
In der Form2:
C#-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| public event EventHandler<string> AddItem;
private void button1_Click(object sender, EventArgs e) { var tmp = AddItem; if (tmp != null) tmp.Invoke(this, textBox1.Text); } |
In der Form1 (beim Erstellen von Form2):
C#-Quelltext 1: 2: 3: 4:
| var f2 = new Form2();
f2.AddItem += (s, item) => { listBox1.Items.Add(item); }; f2.Show(); |
Das Event ist, wenn ich mich recht entsinne, nicht ganz nach den Richtlinien, weil der zweite Parameter eigentlich von EventArgs erben muss, aber ich kann mich auch irren  Als Beispiel sollte es aber auf jeden Fall reichen.
Wird erst hinzugefügt, wenn Form2 geschlossen wird, dann reicht es, in Form2 eine Eigenschaft anzulegen, die beim Button-Click gefüllt wird und die man nach dem Schließen in Form1 ausliest.
Grüße
Christian
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
okrim 
      
Beiträge: 82
Win 7
C# (VS 2010 Express)
|
Verfasst: Fr 14.02.14 18:06
Hallo Christian,
danke für deine Schnelle Antwort, nur leider bekomme ich die ganze Zeit den Fehler
„Der Typ "string" kann nicht als Typparameter "TEventArgs" im generischen Typ oder in der generischen Methode "System.EventHandler<TEventArgs>" verwendet werden. Es ist keine implizite Verweiskonvertierung von "string" in "System.EventArgs" vorhanden“
Was mach ich falsch?
Sorry wenn ich mich bisschen blöd anstelle, aber ich habe erst mit dem Programmieren angefangen und versuch mich gerade mit einem Programm für die Arbeit.
learning by doing
Gruß Mirko
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: Fr 14.02.14 18:17
Hm, dann scheint bei Dir die Bedingung mit den EventArgs, die ich oben erwähnte, erzwungen zu werden. Dann führe mal in Deinem Projekt folgende Klasse ein:
C#-Quelltext 1: 2: 3: 4:
| public class StringEventArgs : EventArgs { public string Data { get; set; } } |
Und ändere die Quelltexte wie folgt:
Form2:
C#-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| public event EventHandler<StringEventArgs> AddItem;
private void button1_Click(object sender, EventArgs e) { var tmp = AddItem; if (tmp != null) tmp.Invoke(this, new StringEventArgs { Data = textBox1.Text }); } |
Form1:
C#-Quelltext 1: 2: 3: 4:
| var f2 = new Form2();
f2.AddItem += (s, arg) => { listBox1.Items.Add(arg.Data); }; f2.Show(); |
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
okrim 
      
Beiträge: 82
Win 7
C# (VS 2010 Express)
|
Verfasst: Fr 14.02.14 19:23
Super jetzt klappt es, ich freu mich so!!!
Geht es eigentlich auch das die Einträge in der comboBox Alphabetisch sortiert sind?
Gruß Mirko
|
|
Ralf Jansen
      
Beiträge: 4708
Erhaltene Danke: 991
VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
|
Verfasst: Fr 14.02.14 20:04
C#-Quelltext 1:
| deineLiebeCombobox.Sorted = true; |
|
|
okrim 
      
Beiträge: 82
Win 7
C# (VS 2010 Express)
|
Verfasst: Fr 14.02.14 20:58
Hallo Ralf,
danke für die Antwort, das ich sie so Sortieren kann das wüsste ich dank Google, nur weiss ich nicht wie ich das in dem Beispiel hier mit einbauen kann, so das wenn ich form2 schliese sollte die comboBox in form1 gleich Sortiert sein.
Oder geht das nur das es erst Sortiert wenn ich in die comboBox klicke?
Gruß Mirko
|
|
C#
      
Beiträge: 561
Erhaltene Danke: 65
Windows 10, Kubuntu, Android
Visual Studio 2017, C#, C++/CLI, C++/CX, C++, F#, R, Python
|
Verfasst: Fr 14.02.14 21:50
_________________ Der längste Typ-Name im .NET-Framework ist: ListViewVirtualItemsSelectionRangeChangedEventHandler
|
|
Ralf Jansen
      
Beiträge: 4708
Erhaltene Danke: 991
VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
|
Verfasst: Fr 14.02.14 22:02
Setzt Sorted im Designer einfach auf true. Die Combox wird dann schon die Liste sortiert halten so wie du Elemente hinzufügst.
|
|
C#
      
Beiträge: 561
Erhaltene Danke: 65
Windows 10, Kubuntu, Android
Visual Studio 2017, C#, C++/CLI, C++/CX, C++, F#, R, Python
|
Verfasst: Fr 14.02.14 22:09
Stimmt eigentlich  Aber ich schieß mir gerne von hinten durch den Rücken in den Fuß 
_________________ Der längste Typ-Name im .NET-Framework ist: ListViewVirtualItemsSelectionRangeChangedEventHandler
|
|
okrim 
      
Beiträge: 82
Win 7
C# (VS 2010 Express)
|
Verfasst: Sa 15.02.14 13:48
Ich danke euch recht Herzlich, ich freu mich immer wieder wenn ich Hilfe von euch bekomme.
Danke, danke, danke …
Gruß Mirko
|
|