Hallo,
ich bräuchte ein wenig Hilfe bei einer Programmieraufgabe für Visual Basic 2010. Ich muss dazu sagen, ich habe damit kaum Erfahrung. Mein Kollege ebenso wenig.
Erst mal zur Ausgangslage:
Das Programm, welches ich erstellen soll, soll auslesen, welche Programme bereits als virtuelle Versionen auf einem PC sind und diese in einer Liste abspeichern.
Das habe ich bereits hinbekommen.
Jetzt soll diese Liste allerdings ausgelesen werden und die Elemente in einer Combibox anwählbar sein.
Auch das habe ich soweit hinbekommen.
Das Problem ist nur, wenn jetzt ein Element ausgewählt wurde, soll es über zwei weitere Buttons aktiviert oder deaktiviert werden können.
Als ich eine Liste testweise erstellt habe, funktionierte das auch alles prima. Allerdings ist meine Liste nicht dynamisch. Das heißt, wenn sich da was an der Anzahl der Elemente ändert, funktioniert das ganze ja nicht mehr.
Meine Vermutung ist, ich brauche zunächst einen Zähler, der die Anzahl der Elemente in der Textdatei auszählt. Und dann brauche ich noch eine Variable, an die das ausgewählte Element in der Combobox schließlich übergeben wird, dass ich dann damit eine case-Verzweigung aufrufen kann.
Zur Verdeutlichung hier noch der Code, den ich bis jetzt habe:
Und dann noch die Bilder dazu:
Bild 1: So sieht das am Anfang aus. Dann klickt man zuerst auf Start. Jetzt wird eine Batchdatei aufgerufen, die in der Konsole eine Liste der Programme aufruft (die habe ich jetzt für das Beispiel erstellt, weil ich das Virtualisierungsprogramm hier nicht habe) und diese Liste in eine Textdatei schreibt.
Bild 2: Die Schaltfläche "Start" wird deaktiviert und man kann die erstellte Liste aufrufen.
Bild 3: Jetzt kann man hier ein Programm auswählen, welches aktiviert oder deaktiviert werden kann.
Kennt sich einer von euch damit aus und kann mir da weiter helfen? Ich wäre euch sehr dankbar.
ich bräuchte ein wenig Hilfe bei einer Programmieraufgabe für Visual Basic 2010. Ich muss dazu sagen, ich habe damit kaum Erfahrung. Mein Kollege ebenso wenig.
Erst mal zur Ausgangslage:
Das Programm, welches ich erstellen soll, soll auslesen, welche Programme bereits als virtuelle Versionen auf einem PC sind und diese in einer Liste abspeichern.
Das habe ich bereits hinbekommen.
Jetzt soll diese Liste allerdings ausgelesen werden und die Elemente in einer Combibox anwählbar sein.
Auch das habe ich soweit hinbekommen.
Das Problem ist nur, wenn jetzt ein Element ausgewählt wurde, soll es über zwei weitere Buttons aktiviert oder deaktiviert werden können.
Als ich eine Liste testweise erstellt habe, funktionierte das auch alles prima. Allerdings ist meine Liste nicht dynamisch. Das heißt, wenn sich da was an der Anzahl der Elemente ändert, funktioniert das ganze ja nicht mehr.
Meine Vermutung ist, ich brauche zunächst einen Zähler, der die Anzahl der Elemente in der Textdatei auszählt. Und dann brauche ich noch eine Variable, an die das ausgewählte Element in der Combobox schließlich übergeben wird, dass ich dann damit eine case-Verzweigung aufrufen kann.
Zur Verdeutlichung hier noch der Code, den ich bis jetzt habe:
Code:
Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Call Shell("D:\VB_Test\liste_erstellen.bat") 'ruft die Datei liste_erstellen.bat auf, welche die Ausgabe im cmd-Fenster in eine Liste kopiert Button1.Enabled = False 'deaktiviert den Button "Start" Button4.Enabled = False 'deaktiviert den Button "Programmliste laden", damit dieser nicht zu früh angeklickt wird, weil das Programm einige Sekunden braucht, um die Bat-Datei auszuführen End Sub Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick Button4.Enabled = True 'Der Timer aktiviert den Button "Programmliste laden" ca. 3 Sekunden, nachdem auf den Button "Start" geklickt wurde End Sub Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click Dim Array() As String = Nothing Array = System.IO.File.ReadAllText("D:\VB_Test\Verzeichnis.txt").Split(CChar(vbCrLf)) 'erstellt aus der erzeugten Liste eine ComboBox mit den Elementen der Liste Me.ComboBox1.Items.AddRange(Array) Button4.Enabled = False 'deaktiviert den Button "Programmliste laden", damit dieser nicht ein zweites Mal angeklickt werden kann Timer1.Enabled = False 'deaktivert den Timer, da er sonst den Button "Programmliste laden" nach 3 Sekunden wieder aktiviert End Sub ' Ab hier sind die Befehle für das Aktivieren und das Deaktivieren aus einer starren Liste. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Select Case ComboBox1.SelectedIndex Case 0 Call Shell("svscmd 3ds Max Design 2012 A") Case 1 Call Shell("svscmd AllPlan-2012 A") Call Shell("svscmd AutoCAD-2012 D") Call Shell("svscmd SOFiCAD-2012 D") Call Shell("svscmd AllPlan-BCM-2012 D") Case 2 Call Shell("svscmd AllPlan-BCM-2012 A") Call Shell("svscmd SOFiCAD-2012 D") Call Shell("svscmd AutoCAD-2012 D") Call Shell("svscmd AllPlan-2012 D") Case 3 Call Shell("svscmd AutoCAD-2012 A") Call Shell("svscmd AllPlan-2012 D") Call Shell("svscmd SOFiCAD-2012 D") Call Shell("svscmd AllPlan-BCM-2012 D") Case 4 Call Shell("svscmd Hottgenroth Akademie A") Case 5 Call Shell("svscmd Netop Vision Lehrer A") Case 6 Call Shell("svscmd Netop Vision Schueler A") Case 7 Call Shell("svscmd SOFiCAD-2012 A") Call Shell("svscmd AutoCAD-2012 D") Call Shell("svscmd AllPlan-2012 D") Call Shell("svscmd AllPlan-BCM-2012 D") Case 8 Call Shell("svscmd Vectorworks 2011 A") Case 9 Call Shell("svscmd Weeke A") End Select End Sub Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Select Case ComboBox1.SelectedIndex Case 0 Call Shell("svscmd 3ds Max Design 2012 D") Case 1 Call Shell("svscmd AllPlan-2012 D") Case 2 Call Shell("svscmd AllPlan-BCM-2012 D") Case 3 Call Shell("svscmd AutoCAD-2012 D") Case 4 Call Shell("svscmd Hottgenroth Akademie D") Case 5 Call Shell("svscmd Netop Vision Lehrer D") Case 6 Call Shell("svscmd Netop Vision Schueler D") Case 7 Call Shell("svscmd SOFiCAD-2012 D") Case 8 Call Shell("svscmd Vectorworks 2011 D") Case 9 Call Shell("svscmd Weeke D") End Select End Sub End Class
Bild 1: So sieht das am Anfang aus. Dann klickt man zuerst auf Start. Jetzt wird eine Batchdatei aufgerufen, die in der Konsole eine Liste der Programme aufruft (die habe ich jetzt für das Beispiel erstellt, weil ich das Virtualisierungsprogramm hier nicht habe) und diese Liste in eine Textdatei schreibt.
Bild 2: Die Schaltfläche "Start" wird deaktiviert und man kann die erstellte Liste aufrufen.
Bild 3: Jetzt kann man hier ein Programm auswählen, welches aktiviert oder deaktiviert werden kann.
Kennt sich einer von euch damit aus und kann mir da weiter helfen? Ich wäre euch sehr dankbar.
Kommentar