|
| Autor |
Nachricht |
aL1ienaire_ Tutorial Leser

Anmeldedatum: 22.08.2007 Beiträge: 35
|
VB frage(euroumrechner)
Verfasst am: 25.08.2007, 12:18 |
|
|
Hallo leute,
ich bin ein newb in sachen VB usw.
so ich wollte mal als einsteig ein programm machen das euro nach franken umd rechnet und zürück.
so das klappt auch perfekt.
aber ich möchte eine fehlermeldung einbauen, dass wenn nichts eingegeben wird, das eine msgbox kommt: KEine eingabe getätigt.
aber wenn ich jetzt Nichts eingebe, wird diese zeile gelb:
| Code: | | Zahl = txt_eingabe.Text |
das ist mein code:
[vb:1:3f32e914d9]Public Class Form1
Private Sub btn_f_e_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_f_e.Click
Dim Zahl As Integer
Zahl = txt_eingabe.Text
If Zahl = Nothing Then
MessageBox.Show("Keine Eingabe getätigt")
Else
txt_ausgabe.Text = Zahl * 1.3
End If
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim Zahl As Integer
Zahl = txt_eingabe.Text
txt_ausgabe.Text = Zahl / 1.3
End Sub
End Class[/vb:1:3f32e914d9]
wisst ihr was das ist?
mfg aL1ien |
|
| |
|
 |
ZiG_ Überflieger

Anmeldedatum: 07.03.2007 Beiträge: 1248
|
Verfasst am: 25.08.2007, 13:00 |
|
|
Du kannst keinen leeren String an eine Integer Variable übergeben.
Mach einfach eine Abfrage ob die Textbox leer ist.
[vb:1:1fc43e843e]
If Len(txt_eingabe.Text) = 0 then
'Fehlermeldung
End if
[/vb:1:1fc43e843e]
Außerdem wäre noch gut, dass man nur Zahlen in die Textbox eintippen kann. Wer nicht auf seine Weise denkt, denkt überhaupt nicht. (Oscar Wilde) |
|
| |
|
 |
aL1ienaire_ Tutorial Leser

Anmeldedatum: 22.08.2007 Beiträge: 35
|
Verfasst am: 25.08.2007, 13:50 |
|
|
also jetzt siehts so aus:
| Code: | Public Class Form1
Private Sub btn_f_e_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_f_e.Click
Dim Zahl As Integer
Zahl = txt_eingabe.Text
If Len(txt_eingabe.Text) = 0 Then
MessageBox.Show("Keine Eingabe getätigt")
Else
txt_ausgabe.Text = Zahl * 1.3
End If
End Sub |
und geht immernochnet.
edit: jo werd ich machen wegen der box
die zahl_txt_eingabe.text wird immernoch gelb[vb:1:517529561f][/vb:1:517529561f]
Zuletzt bearbeitet von aL1ienaire_ am 25.08.2007, 13:55, insgesamt einmal bearbeitet |
|
| |
|
 |
ZiG_ Überflieger

Anmeldedatum: 07.03.2007 Beiträge: 1248
|
Verfasst am: 25.08.2007, 13:54 |
|
|
Ja ist ja auch logisch, da du vor der Abfrage( in der du überhaupt mal testest ob etwas eingetippt wurde) schon den Text an Zahl übergibst.
Wie gesagt kann das nicht funktionieren wenn nichts eingegeben wurde.
[vb:1:9678e783dd]
If Len(txt_eingabe.Text) = 0 Then
Zahl = txt_eingabe.Text
MessageBox.Show("Keine Eingabe getätigt")
Else
txt_ausgabe.Text = Zahl * 1.3
End If
[/vb:1:9678e783dd]
Und benutze bitte statt den [code] tags, die [vb] tags. Wer nicht auf seine Weise denkt, denkt überhaupt nicht. (Oscar Wilde) |
|
| |
|
 |
aL1ienaire_ Tutorial Leser

Anmeldedatum: 22.08.2007 Beiträge: 35
|
Verfasst am: 25.08.2007, 14:01 |
|
|
[vb:1:025db04567] Private Sub btn_f_e_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_f_e.Click
Dim Zahl As Integer
If Len(txt_eingabe.Text) = 0 Then
Zahl = txt_eingabe.Text
MessageBox.Show("Keine Eingabe getätigt")
Else
txt_ausgabe.Text = Zahl * 1.3
End If
End Sub[/vb:1:025db04567]
irgendetwas ist falsch-.-
und jetzt aknn er net mal mehr rechnen. wenn ich 2 eingebe kommt einfach 0 raus und das mit jeder zahl |
|
| |
|
 |
Bahamut_ « Moderator »

Anmeldedatum: 12.12.2006 Beiträge: 250
|
Verfasst am: 25.08.2007, 14:41 |
|
|
Lass doch den ganzen Mist mit der Veriable "Zahl"
[vb:1:772011dac9]
Private Sub btn_f_e_Click(... 'usw
If Len(txt_eingabe.Text) = 0 Then
MessageBox.Show("Keine Eingabe getätigt")
Else
txt_ausgabe.Text = txt_eingabe.Text * 1.3
End If
End Sub
[/vb:1:772011dac9]
So kannst du nicht versuchen einer Variable einen Wert zuzuweisen, den es nicht gibt wenn die Eingabe nix ist. Damit du was lernst, hier noch die Variante mit Veriable:
[vb:1:772011dac9]
Private Sub btn_f_e_Click(... 'usw
Dim Zahl As Integer
If Len(txt_eingabe.Text) = 0 Then
MessageBox.Show("Keine Eingabe getätigt")
Else
Zahl = txt_eingabe.txt
txt_ausgabe.Text = Zahl * 1.3
End If
End Sub
[/vb:1:772011dac9]
Denke nun is es klar.
Achja wenn einer "abc" eingibt geht es natürlich nicht, entweder du machst es so, dass man nur Zahlen eingeben kann, oder dass überprüft wird ob Buchstaben mit drin sind und dann ein Error kommt. |
|
| |
|
 |
ZiG_ Überflieger

Anmeldedatum: 07.03.2007 Beiträge: 1248
|
Verfasst am: 25.08.2007, 15:00 |
|
|
@aL1ienaire
Ich hab mich nur in der Zeile geirrt.
Da hättest auch selbst drauf kommen können.
Das
Zahl = txt_eingabe.txt
gehört natürlich bei else hinein, wie es Bahamut geschrieben hat. Wer nicht auf seine Weise denkt, denkt überhaupt nicht. (Oscar Wilde) |
|
| |
|
 |
aL1ienaire_ Tutorial Leser

Anmeldedatum: 22.08.2007 Beiträge: 35
|
Verfasst am: 25.08.2007, 15:50 |
|
|
ok geht jetzt alles*, wie gesagt ich bin ein nobo hab nur die tuts angeschaut von einem tobios oder so |
|
| |
|
 |
Marduk_ « Moderator »

Anmeldedatum: 17.06.2007 Beiträge: 389
|
Verfasst am: 25.08.2007, 20:04 |
|
|
Damit kannst du nur Zahlen in der Textbox zulassen, dann kommt auch kein Fehler mehr
[vb:1:8b49ea4a6c]Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
Select Case Asc(e.KeyChar)
Case 48 To 57, 8, 32
' Zahlen, Backspace und Space zulassen
Case Else
' alle anderen Eingaben unterdrücken
e.Handled = True
End Select
End Sub[/vb:1:8b49ea4a6c]
Hab ich auch in meinen TR verwendet und ist recht nützlich  |
|
| |
|
 |