vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Schützen Sie Ihre Software vor Software-Piraterie - mit sevLock 1.0 DLL!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Visual Studio 2010: Mehrere Steuerelemente auf einmal ansprechen 
Autor: Fes
Datum: 06.02.11 17:36

Erstmal ein freundliches Hallo von mir als Neuling.
Habe diese Frage schon in einem anderen Forum gestellt, aber keinerlei Antwort bekommen.
Hier wie dort hoffe ich, ich nerve niemanden mit (tatsächlich oder vermeintlich) blöden Fragen.


Zur Sache:
Ich hab vor kurzem angefangen, mich ein wenig mit Programmierung zu beschäftigen.
Jetzt bin ich gerade, vor allem für Übungszwecke, dabei, einen Charaktereditor für ein wenig bekanntes Rollenspiel zu schreiben.
Dabei habe ich zwar schon eine recht genau Vorstellung, was ich wie machen möchte, bzw. wie das Programm bestimmte Dinge handhaben soll, bin technisch aber noch ein totaler Anfänger.

Meine aktuelle Problemstellung:
Ich habe mehrere ComboBoxen, mit denen ich jeweils folgendes machen möchte:
- Sie mit einer Liste von Wörtern (den Bezeichnungen für die Fertigkeiten) füllen
- Festlegen, daß beim Ändern des "SelectedItem" eben dieses ausgewählte Item einem vorher definierten Array zugewiesen wird

Diese beiden Dinge bekomme ich mittlerweile schon hin, nur möchte ich sie ungern für jede ComboBox einzeln beschreiben.
Es wäre äusserst angenehm, wenn ich einfach sagen könnte "Führe diese Aktionen für alle ComboBoxen durch", also sowas schreiben könnte wie "for i = 0 To 50 ComboBox(i).Items.Add".
Geht aber nicht, weil ComboBox ein Type ist.

Jetzt habe ich mir klug gedacht "Ha, mach ich das doch einfach über ein Array!":

Dim CBArray As New ArrayList()
 
        CBArray(0) = ComboBox1
 
        Dim i As Integer
 
        For i = 0 To 50
 
 
            CBArray(0).Items.Add(PrimFertigkeiten(i))
 
        Next i
Da wirft er mir keine Fehlermeldung aus, es geht aber trotzdem nicht.

Im Internet bin ich dann auf eine andere Lösungsmöglichkeit gestoßen:

        Dim ctl As Control
 
        For Each ctl In Controls
            If Name.Contains("ComboBox") Then
 
                Dim i As Integer
 
                For i = 0 To 50
 
                    ctl.Items.Add = PrimFertigkeiten(i)
 
                Next
 
            End If
Das heißt - das ist meine Version, wie ich mir das eigentlich vorgestellt hatte.
Dummerweise funktioniert das so nicht, da Controls leider kein "Items" kennt.

Im Ganzen soll der Charaktereditor eine Menge an ComboBoxen und Up-Down-Elementen und Textboxen enthalten, und es wäre echt mühselig, wenn ich da jeweils pro Element den jeweils gleichen Code neu eingeben müsste.
Ich hatte auch daran gedacht, es so einzurichten, daß ich mit nur einer ComboBox anfange, und einfach eine neue mit den gleichen Eigenschaften darunter erschaffen wird, sobald in der ersten ComboBox ein Eintrag ausgewählt wurde.
Hier könnte ich das dann doch gar nicht mehr individuell handhaben, sondern bräuchte irgendeine automatische Indizierung der jeweiligen Elemente?

Im Internet bin ich halt bisher nicht fündig geworden, was vielleicht auch daran liegt, daß ich nicht so ganz weiß, nach was für einem Stichwort ich eigentlich suchen soll.
Hat da also jemand Rat für mich, entweder einen Verweis auf einen Thread oder eine Webseite der/die das Thema behandelt, oder eine eigene Idee, oder vielleicht sogar einen Tipp, wie ich das grundsätzlich aufziehen könnte, um mir im Einzelnen Arbeit zu ersparen?

PS: Nachdem ich nochmal weitergeschaut habe und noch was anderes versucht habe, bin ich immer noch nicht weiter.
Zur Zeit habe ich die Elemente in einem Layouttable, deshalb hatte ich versucht, eben dieses anzusprechen, und nebenbei noch den Typ der Variable auf ComboBox geändert, damit ich dort auch auf die Items zugreifen kann:

For Each CBox As ComboBox In TableLayoutPanel1.Controls
 
            Dim Index As Integer
            For Index = 0 To 50
 
                CBox.Items.Add(PrimFertigkeiten(Index))
 
            Next Index
 
        Next CBox
Er macht es aber immer noch nicht, ohne Fehlermeldung.
Bitte bitte Hilfe!
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Visual Studio 2010: Mehrere Steuerelemente auf einmal anspre...1.679Fes06.02.11 17:36
Re: Visual Studio 2010: Mehrere Steuerelemente auf einmal an...1.219ModeratorDaveS07.02.11 12:26
Re: Visual Studio 2010: Mehrere Steuerelemente auf einmal an...1.124Fes08.02.11 12:11
Re: Visual Studio 2010: Mehrere Steuerelemente auf einmal an...1.208ModeratorDaveS08.02.11 12:21
Re: Visual Studio 2010: Mehrere Steuerelemente auf einmal an...1.099Fes10.02.11 10:42
Re: Visual Studio 2010: Mehrere Steuerelemente auf einmal an...1.126ModeratorDaveS10.02.11 13:58
Re: Visual Studio 2010: Mehrere Steuerelemente auf einmal an...1.116Enium07.02.11 16:08
Re: Visual Studio 2010: Mehrere Steuerelemente auf einmal an...1.152Fes08.02.11 12:33
Re: Visual Studio 2010: Mehrere Steuerelemente auf einmal an...1.033Manfred X08.02.11 14:02
Re: Visual Studio 2010: Mehrere Steuerelemente auf einmal an...1.127Fes10.02.11 10:32
Re: Visual Studio 2010: Mehrere Steuerelemente auf einmal an...1.213Manfred X10.02.11 13:17
Re: Visual Studio 2010: Mehrere Steuerelemente auf einmal an...1.178Manfred X07.02.11 16:19
Re: Visual Studio 2010: Mehrere Steuerelemente auf einmal an...1.080Fes08.02.11 12:37

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel