![]() |
[VB2008] Programm verändern, Step by Step ....
Hey Leute,
bräuche mal Hilfe bei einem von mir geschriebenen Programm. Es soll der Bremsweg eines Autos mit verschiedenen Kriterien (Zustand des Fahrers, Bodenbeschaffenheit, Geschwindigkeit) berechnet werden. Habe das Ganze erstmal auf einer Maske gemacht. Nun würde ich aber gerne das Programm so verändern, dass pro Abfrage jeweils eine Maske auftaucht, aber in selbem Fenster. Also z.b. so: 1. Geben Sie Ihre Geschwindigkeit ein ..... "Kick auf weiter" 2. Geben Sie den Zustand des Fahrers ein.... "Klick auf weiter" 3. Geben Sie die Bodenbeschaffenheit ein.... "Klick auf weiter" 4. Es erscheint dann eine Maske mit den berechneten Werten. Ich hoffe ihr wißt, worum es mir geht.... Hier der Code: Public Class Form1 Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) _ Handles Me.Load 'Einträge für Combobox einfügen ComboBox1.Items.Clear() ComboBox1.Items.Add("Trockener Asphalt") ComboBox1.Items.Add("Nasser Asphalt") ComboBox1.Items.Add("Laub") ComboBox1.Items.Add("Betonfahrbahn") ComboBox1.Items.Add("Sand") ComboBox1.Items.Add("Schneebedeckte Fahrbahn") ComboBox1.Items.Add("Eis") ComboBox2.Items.Clear() ComboBox2.Items.Add("Fit") ComboBox2.Items.Add("Müde") ComboBox2.Items.Add("unter Alkoholeinfluss") ComboBox2.Items.Add("unter Drogeneinfluss") 'Einträge welche als Standard angezeigt werden ComboBox1.SelectedItem = "Trockener Asphalt" ComboBox2.SelectedItem = "Fit" End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _ System.EventArgs) Handles Button1.Click 'Variablen deklarieren Dim v0 As Double 'Geschwindigkeit in km/h Dim v As Single 'Geschwindigkeit in m/s Dim a As Double 'Bremsverzögerung in m/s² (je nach Bodenbeschaffenheit) Dim tr As Double 'Reaktionszeit Dim sr As Single 'Reaktionsweg Dim sb As Single 'Bremsweg Dim sa As Single 'Anhalteweg 'Textbox muss Zahl als Eintrag enthalten If IsNumeric(TextBox1.Text) = False Then MsgBox("Achten Sie bitte darauf, eine Geschwindigkeit in km/h" & _ "einzugeben!") Exit Sub End If 'Umwandeln der Eingabe in Datentyp Double v0 = CDbl(TextBox1.Text) 'Einträge in Listbox auf 10 begrenzen If ListBox1.Items.Count >= 10 Then MsgBox("Es sind bereits 10 Einträge enthalten. Bitte drücken Sie" & _ "den Knopf Inhalt leeren um eine neue Berechnung zu starten.") Exit Sub End If 'Eingegebene Geschwindigkeiten in die erste Listbox schreiben ListBox1.Items.Add(v0) 'Umwandeln von km/h in m/s v = v0 / 3.6 'Zuweisung der Reaktionszeit tr zu den jeweiligen Fahrerzuständen in ' der Combobox If ComboBox2.SelectedItem = "Fit" Then tr = 1 End If If ComboBox2.SelectedItem = "Müde" Then tr = 1.5 End If If ComboBox2.SelectedItem = "unter Alkoholeinfluss" Then tr = 2 End If If ComboBox2.SelectedItem = "unter Drogeneinfluss" Then tr = 2.5 End If 'Reaktionsweg sr = tr * v ListBox2.Items.Add(sr) 'Zuweisung der Bremsverzögerung zur jeweiligen Bodenbeschaffenheit If ComboBox1.SelectedItem = "Trockener Asphalt" Then a = 10 End If If ComboBox1.SelectedItem = "Nasser Asphalt" Then a = 8 End If If ComboBox1.SelectedItem = "Laub" Then a = 6 End If If ComboBox1.SelectedItem = "Betonfahrbahn" Then a = 5 End If If ComboBox1.SelectedItem = "Sand" Then a = 4 End If If ComboBox1.SelectedItem = "Schneebedeckte Fahrbahn" Then a = 3 End If If ComboBox1.SelectedItem = "Eis" Then a = 1 End If 'Bremsweg sb = (v ^ 2) / (2 * a) ListBox3.Items.Add(sb) 'Anhalteweg sa = sr + sb ListBox4.Items.Add(sa) 'Textbox nach jeder Berechnung wieder leeren TextBox1.Text = " " End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As _ System.EventArgs) Handles Button2.Click 'Einträge löschen ListBox1.Items.Clear() ListBox2.Items.Clear() ListBox3.Items.Clear() ListBox4.Items.Clear() End Sub End Class Edit: Hier das Prog als RAR: [Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...] |
Pack ein TabControl auf die Form und zieh diese so lang/hoch, dass man die Tabs oben nicht sieht. Beim ersten Tab kommt dann "Geben Sie Ihre Geschwindigkeit ein:" beim Buttonklick wird automatisch zum 2. Tab gewechselt (TabControl1.SelectedTab = TabPage2/3/4/5...) wo dann "Geben Sie den Zustand des Fahrers ein:" kommt usw. und beim letzten Tab wird die Auswertung angezeigt.
|
Das mit dem TabControl ist eine feine Sache! (warum habe ich das bloß übersehen) ...
Das mit dem Wizard muss ich mir noch genauer anschauen, scheint etwas komplexer zu sein.... Aber schon mal vielen vielen Dank für die Hilfe!!!! :) Wenn ich nicht weiterkommen, darf ich euch doch wieder fragen? *liebguck* ;) |
Du kannst auch mit "Frames" arbeiten und alle übereinander machen und bei jeder neuen Anfrage ein neues auf .visible = true stellen, so brauchst du nicht soviel Platz mit deinem Fenster. Es gibt viele Möglichkeiten. Du kannst auch die Buttons aufeinander legen und mit .visible arbeiten .......
|
Komme an einer Stelle nicht weiter:
Hab einer an Stelle RadioButtons eingefügt. Diese sollen einen Wert haben, um damit zu rechnen.... Z.b. If RadioButton1.Checked = True Then a = 10 End If .... wenn ich nun z.B. eine Formel habe: sb = (v ^ 2) / (2 * a) ListBox3.Items.Add(sb) Kommt dann in der ListBox3 der Wert: +unendlich Vorher hatte ich die ComboBox mit entsprechendem Auswahltext: If ComboBox2.SelectedItem = "unter Alkoholeinfluss" Then a = 10 End If Damit hats geklappt. Wieso bekomme ich die RadioButtons nicht zum Laufen? |
Probier mal
if Radiobutton1 = true then a = 10 end if |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:38 Uhr. |
Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.