Autor |
Beitrag |
traceurmicha
      
Beiträge: 160
Erhaltene Danke: 9
Win XP SP2, Win 7 Pro., Ubuntu 9, Debian 5
C#, ASP.NET, MSSQL, PHP(Microsoft Visual Studio 2010 Ultimate, SharpDevelop 4, Microsoft SQL Server2008 Express, Eclipse for PHP)
|
Verfasst: Mo 05.07.10 14:15
Moin Moin,
hab mal wieder ein Problem.
ich habe in einem Program ComboBoxen erstellt mit:
C#-Quelltext 1: 2: 3: 4:
| ComboBox CB = new ComboBox(); CB.Name = "cb_1"; CB.Location = new Point(6,20); this.Controls.Add(CB); |
Nun will ich diese später mit werten füllen, nur komm ich nicht ran, wenn ich die ComboBox suche mit
C#-Quelltext 1:
| Control[] c = this.Controls.Find("cb_1",true); |
bekomme ich zwar ein Controls aber ich kann nicht angeben c[0].Items.Add().
kann mir bitte jemand helfen?!
Danke
traceurmicha
_________________ Programmieren ist ein Rennen zwischen den Softwareentwicklern, die versuchen größere und bessere idiotensichere Programme zu schreiben und dem Universum, welches versucht größere und bessere Idioten zu produzieren. Zur Zeit liegt das Universum in Führung.
|
|
Chiller_No.1
      
Beiträge: 62
Erhaltene Danke: 6
Win 7, Win XP, Win Vista
C++, C#, HTML
|
Verfasst: Mo 05.07.10 14:17
Willst du die Werte selber einfügen? oder wilst du die Werte zb. aus einer datenbank oder txt datei nehmen?
|
|
traceurmicha 
      
Beiträge: 160
Erhaltene Danke: 9
Win XP SP2, Win 7 Pro., Ubuntu 9, Debian 5
C#, ASP.NET, MSSQL, PHP(Microsoft Visual Studio 2010 Ultimate, SharpDevelop 4, Microsoft SQL Server2008 Express, Eclipse for PHP)
|
Verfasst: Mo 05.07.10 14:19
Die Werte möchte ich selbst einfügen.
Der User gibt den Wert in eine Textbox ein und dieser soll dann in die ComboBox geschrieben werden.
_________________ Programmieren ist ein Rennen zwischen den Softwareentwicklern, die versuchen größere und bessere idiotensichere Programme zu schreiben und dem Universum, welches versucht größere und bessere Idioten zu produzieren. Zur Zeit liegt das Universum in Führung.
|
|
Chiller_No.1
      
Beiträge: 62
Erhaltene Danke: 6
Win 7, Win XP, Win Vista
C++, C#, HTML
|
Verfasst: Mo 05.07.10 14:43
C#-Quelltext 1:
| comboBoxX1.Items.Add(textbox.text); |
Meinst du das so?
Kommt mir jetzt selber eig viel zu simpel vor :/
|
|
traceurmicha 
      
Beiträge: 160
Erhaltene Danke: 9
Win XP SP2, Win 7 Pro., Ubuntu 9, Debian 5
C#, ASP.NET, MSSQL, PHP(Microsoft Visual Studio 2010 Ultimate, SharpDevelop 4, Microsoft SQL Server2008 Express, Eclipse for PHP)
|
Verfasst: Mo 05.07.10 14:48
Du hast Recht, das ist zu Simpel
Also ich kann ja wenn ich aus der Toolbox ne Combobox auf die Form ziehe diese Füllen mit
C#-Quelltext 1:
| Comboboxname.Items.Add(Irgendwas); |
Da ich die Combobox aber erst im laufe des Programs "zeichne" geht das so nicht weil mir das VisualStudio da zu verstehen gibt das es dieses Element nicht gibt, is ja logisch^^.
Die frage ist nun, wie komm ich trotzdem an die ComboBox?
_________________ Programmieren ist ein Rennen zwischen den Softwareentwicklern, die versuchen größere und bessere idiotensichere Programme zu schreiben und dem Universum, welches versucht größere und bessere Idioten zu produzieren. Zur Zeit liegt das Universum in Führung.
|
|
danielf
      
Beiträge: 1012
Erhaltene Danke: 24
Windows XP
C#, Visual Studio
|
Verfasst: Mo 05.07.10 14:58
Hallo,
du musst die ComboBox als Klassenmember speichern, damit du von einer anderen Methode zugreifen kannst.
Wenn du nur eine dynamische ComboBox benötigst reicht es aus wenn du eine Klassenmember machst.
Beim erstellen weißt du dann eben diese zu:
C#-Quelltext 1: 2: 3: 4:
| this.MeineDynamischeComboBoxMitSchoenemNamen = new ComboBox(); this.MeineDynamischeComboBoxMitSchoenemNamen.Name = "cb_1"; this.MeineDynamischeComboBoxMitSchoenemNamen.Location = new Point(6,20); this.Controls.Add(this.MeineDynamischeComboBoxMitSchoenemNamen ) |
Dann kannst du später einfach den gewünschten Eintrag hinzufügen:
C#-Quelltext 1:
| this.MeineDynamischeComboBoxMitSchoenemNamen.Items.Add("blub"); |
Den Sinn habe ich zwar nicht verstanden aber soweit mal die Umsetzung
Gruß
|
|
Chiller_No.1
      
Beiträge: 62
Erhaltene Danke: 6
Win 7, Win XP, Win Vista
C++, C#, HTML
|
Verfasst: Mo 05.07.10 15:01
Ach verdammt du warst schneller ;D
|
|
traceurmicha 
      
Beiträge: 160
Erhaltene Danke: 9
Win XP SP2, Win 7 Pro., Ubuntu 9, Debian 5
C#, ASP.NET, MSSQL, PHP(Microsoft Visual Studio 2010 Ultimate, SharpDevelop 4, Microsoft SQL Server2008 Express, Eclipse for PHP)
|
Verfasst: Mo 05.07.10 15:04
Danke Daniel, wer die lösung gleich mal ausprobieren^^
Ja du hast recht mir ist auch aufgefallen das es wenig sinn macht was ich hier als Beispiel geschrieben hab.
Um die verwunderung aufzulösen, der User gibt am Anfang eine Anzahl von Autos an, für diese werden dann Textboxen erstellt wo man die namen eingeben kann. Danach werden die Namen als Label auf die Form gezeichnet und neben jeden Namen eine ComboBox um etwas auszuwählen.
Ich hoffe jetzt macht es ein wenig mehr Sinn
Wenn ich das Projekt fertig habe werd ich es hier auch mal veröffentlichen, dann müssten alle Missverständnisse aus dem Weg geräumt sein^^
_________________ Programmieren ist ein Rennen zwischen den Softwareentwicklern, die versuchen größere und bessere idiotensichere Programme zu schreiben und dem Universum, welches versucht größere und bessere Idioten zu produzieren. Zur Zeit liegt das Universum in Führung.
|
|
Chiller_No.1
      
Beiträge: 62
Erhaltene Danke: 6
Win 7, Win XP, Win Vista
C++, C#, HTML
|
Verfasst: Mo 05.07.10 15:06
Mach das 
|
|
JüTho
      
Beiträge: 2021
Erhaltene Danke: 6
Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
|
Verfasst: Mo 05.07.10 15:34
Hallo,
Daniels Lösung zusammen mit deinem ursprünglichen Versuch passt und geht auch schneller:
C#-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| Control[] c = this.Controls.Find("cb_1",true); if (c[0] is ComboBox) { (c[0] as ComboBox).Items.Add("irgendwas"); } |
Sicherheitshalber sollte vorher noch auf c.Length getestet werden, aber dieses Verfahren funktioniert.
Gruß Jürgen
|
|
|