Taschenrechner programmierung in Visual Basic 2005

Hallo erstmal,
also ich arbeite jetzt seit einem Monat als Fachinformatikerin
leider kenne ich mich nicht sehr gut mit Visual Basic aus! Mein Chef möchte jetzt das ich einen Taschenrechner in Visual Basic programmiere. Hab jetzt auch schon alles fertig bis auf das, dass man keine Buchstaben ins Eingabe feld eingeben soll. Im Internet hab ich dann das gefunden:

Dim testen_ob_Zahl
testen_ob_Zahl = IsNumeric(txtZahl1.Text)
If testen_ob_Zahl = False Then MsgBox(„Bitte eine Zahl eingeben“)

So will er es aber nicht! Er möchte irgendwie etwas mit einer if Formel oder so. Könnt ihr mir bitte helfen und erklären wie man das noch machen kann?!
Vielen Dank im Voraus an alle…
Skandalös

[MOD] - Titel geändert

Mein Chef möchte jetzt das ich einen Taschenrechner in Visual
Basic programmiere. Hab jetzt auch schon alles fertig bis auf
das, dass man keine Buchstaben ins Eingabe feld eingeben soll.

Hi Skandalös,

ungetestet:

if not IsNumeric(txtZahl1.Text) then MsgBox(„Bitte eine Zahl eingeben“)

Gruß
Reinhard

Hi Skandalös,

ungetestet:

if not IsNumeric(txtZahl1.Text) then MsgBox(„Bitte eine Zahl
eingeben“)

Gruß
Reinhard

Hallo Reinhard
leider geht dies so nicht! aber ich danke dir trotzdem!
Skandalös

Hallo,

Muss es unbedingt mit IF gemacht werden?
Ansonsten wäre es nämlich mit einem Try / Catch Block getan.
Hier einmal der Code in C# (Sorry, ich kann kein VB.NET, aber vielleicht kannst du es ja trotzdem lesen)

try
{
int eingabe = Convert.ToInt32(Console.ReadLine()); //Eingabe der Zahl
Console.WriteLine(eingabe); //Ausgabe der Zahl
}

catch (Exception fehlermeldung)
{
Console.WriteLine(fehlermeldung.message);
}

//Wenn „eingabe“ kein Integer ist wird eine von .NET generierte Fehlermeldung ausgegeben

Ich hoffe ich konnte dir weiterhelfen

Gruß,
Flavio

Grade gefunden war auch auf der such nach sowas:

http://www.ms-office-forum.net/forum/archive/index.p…

hier kannste eingeben welche Zeichen gehen alle anderen werden unterdrückt.

Du brauchst ja nur die Zahlen.

Hi leute
danke für die hilfe von euch allen!! aber es geht immer noch nicht! Hab etz zwar was gefunden, und zwar

Dim testen_ob_Zahl
testen_ob_Zahl = IsNumeric(txtZahl1.Text)
If testen_ob_Zahl = False Then txtZahl1.Text = „“

aber mein problem das ich etz hab ist das ich zwar keine Buchstaben mehr am Anfang schreiben kann dafür macht es aber nichts wenn ich sie irgenwo mitten rein schreibe! ich hätte da jetzt auch einen neuen ansatz vll könnt ihr euch den mal anschauen und mir verbesserungsvorschläge geben! Hier ist er:

Dim dummy = „“
Dim ez = „“
For dummy = 1 To Len(txtZahl2.Text)
ez = txtZahl2.Text
If ez = True Then
Select Case ez
Case ez = „0“, „9“, „.“
dummy = dummy & ez
Case Else
End Select
End If
Next
txtZahl2.Text = dummy

Danke!!

Also ich habs etz endlich geschaft!!!
und hier für alle die mal das selbe Problem haben:

Dim dummy As String = „“
Dim ez As String
Dim i As Integer = 0

For i = 1 To Len(txtZahl1.Text)
ez = Mid(txtZahl1.Text, i, 1)
Select Case ez
Case „0“ To „9“, „.“
dummy = dummy & ez
Case Else
End Select
Next

txtZahl1.Text = dummy
txtZahl1.Select(txtZahl1.Text.Length, 0)

trotzdem nochmal an alle danke! und falls jemand trotzdem noch eine bessere lösung hat nehme trotzdem noch jeden Vorschlag gerne an :smile:
Liebe grüße Skandalös

trotzdem nochmal an alle danke! und falls jemand trotzdem noch
eine bessere lösung hat nehme trotzdem noch jeden Vorschlag

Hi,
obs besser ist weiß ich nicht, aber es ist zumindest eine Altenative:

Oben im Dokument muss Imports System.Text.RegularExpressions stehen

Dim eingabe As String = Console.ReadLine()
Dim wertebereich As String = ("^[0-9]")

If Regex.IsMatch(eingabe, wertebereich) Then
Console.WriteLine(„Eingabe ist eine Zahl“)

Die Variable „eingabe“ nimmt die Zeichen mit ReadLine() entgegen.
Die Variable „wertebereich“ gibt einen bereich an.
Regex.IsMatch(eingabe, wertebereich) besagt, dass „eingabe“ nur aus Zeichen von „Wertebreich“ bestehen darf, und das sind ja die Zahlen von 0-9.

Kannst es ja mal ausprobieren.

Gruß,
Flavio

Hallo,

ich bin erst jetzt an meinen Computer mit VB 2005 gekommen.

Wie gefällt Dir das:?

 Private Sub TextBox1\_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
 If Not IsNumeric(e.KeyChar) And Asc(e.KeyChar) 8 Then
 e.KeyChar = ""
 End If
 End Sub

Ich vermute, so war es ursprünglich gemeint.

Gruß Rainer