Benutzer mit den meisten Antworten
Prüfen des Inhaltes einer Textbox

Frage
-
Hallo
ich möchte gern Prüfen ob der Anwender in einer Textbox wirklich Zahlen (Doublewert) oder Buchstaben eingeben hat.
If TextBox1.Text = String or Zahl2 = String Then TextBox = ("Bitte nur Zahlen eingeben !!")
Ich Bitte um ein Code-Beispiel und eine Kurze Erklärung.
Vielen Dank.
Gruß Hilko
Antworten
-
Hallo Hilko,
Dim MeineZahl As Double = 0 If Not Double.TryParse( TextBox1.Text, MeineZahl ) Then MessageBox.Show( "Nur Zahlen eingeben!" ) End if
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort vorgeschlagen Robert BreitenhoferModerator Donnerstag, 29. September 2011 11:19
- Als Antwort markiert Robert BreitenhoferModerator Freitag, 4. November 2011 16:18
-
Hallo Hilko,
danke für deine Hilfe, was ich jedoch nicht verstehe ist, warum den Double wert auf 0 setzen der kommt doch aus meiner Textbox.
Denn hätte ich noch eine grundsätzliche Frage zu VB.NET:
--- Eine Klasse hat Member
--- An Member übergibt man Eingenschaften in Klammern "()"
"In Klammern"?
Klasse.Eigenschaft = Wert
Klasse.Methode()
Klasse.Methode( Wert )
Wert = Klasse.Methode()
...
In unserem Code:
Klasse - Double
Member - TryParse
Eigenschaft - TextBox1.Text, MeineZahl
Richtig??
Öhm. Nö. Du musst zwischen Eigenschaften und Methoden in Klassen unterscheiden. Bei Methoden wieder in Prozeduren (Sub) und Funktionen (Function). Letztere geben etwas zurück, erstere nicht.
Class MeineKlasse Private _Text As String Public Property Text As String Get Return _Text End Get Set _Text = Value End Set End Property Public Sub MachTextLeer() Me.Text = String.Empty End Sub Public Function VerdoppeleText() As String Return Me.Text & Me.Text End Function End Class
Gib es ein verzeichnis wo steht welche Klasse welche Member hat und was diese bewirken?
Bitte hilf mir die zusammen hänge besser zu verstehen.
Für die Standardklassen im .NET Framework gibt es die MSDN, da steht das. Für andere Klassen musst Du den Entwickler der Klasse fragen bzw. dessen Doku, wenn es eine gibt.
Hier ein Beispiel für die System.String Klasse:
http://msdn.microsoft.com/de-de/library/system.string.aspx
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
- Als Antwort vorgeschlagen Robert BreitenhoferModerator Donnerstag, 29. September 2011 14:35
- Bearbeitet Stefan FalzModerator Donnerstag, 29. September 2011 15:00 Anrede vergessen
- Als Antwort markiert Robert BreitenhoferModerator Freitag, 4. November 2011 16:18
-
Hallo Hilko,
Alternativ hast Du die Möglichkeit nur bestimmte Zeichen durch zu lassen.
Hier Zahlen, Backspace und Punkt.Private Sub txtBetrag_KeyPress(sender AsObject, e As System.Windows.Forms.KeyPressEventArgs) Handles txtBetrag.KeyPress Dim sep = Application.CurrentCulture.NumberFormat.NumberDecimalSeparator If Not ((e.KeyChar >= "0"c And e.KeyChar <= "9"c) Or e.KeyChar = Convert.ToChar(8) Or (e.KeyChar = sep And txtBetrag.Text.IndexOf(sep) = -1)) Then 'Nur Max 1 Seperator zulassen e.KeyChar = ChrW(0) End If End Sub
Gruss Peter- Bearbeitet Robert BreitenhoferModerator Donnerstag, 29. September 2011 11:19 Formatierung
- Als Antwort vorgeschlagen Robert BreitenhoferModerator Donnerstag, 29. September 2011 11:20
- Als Antwort markiert Robert BreitenhoferModerator Freitag, 4. November 2011 16:18
Alle Antworten
-
Hallo Hilko,
Dim MeineZahl As Double = 0 If Not Double.TryParse( TextBox1.Text, MeineZahl ) Then MessageBox.Show( "Nur Zahlen eingeben!" ) End if
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort vorgeschlagen Robert BreitenhoferModerator Donnerstag, 29. September 2011 11:19
- Als Antwort markiert Robert BreitenhoferModerator Freitag, 4. November 2011 16:18
-
Hallo Hilko,
Alternativ hast Du die Möglichkeit nur bestimmte Zeichen durch zu lassen.
Hier Zahlen, Backspace und Punkt.Private Sub txtBetrag_KeyPress(sender AsObject, e As System.Windows.Forms.KeyPressEventArgs) Handles txtBetrag.KeyPress Dim sep = Application.CurrentCulture.NumberFormat.NumberDecimalSeparator If Not ((e.KeyChar >= "0"c And e.KeyChar <= "9"c) Or e.KeyChar = Convert.ToChar(8) Or (e.KeyChar = sep And txtBetrag.Text.IndexOf(sep) = -1)) Then 'Nur Max 1 Seperator zulassen e.KeyChar = ChrW(0) End If End Sub
Gruss Peter- Bearbeitet Robert BreitenhoferModerator Donnerstag, 29. September 2011 11:19 Formatierung
- Als Antwort vorgeschlagen Robert BreitenhoferModerator Donnerstag, 29. September 2011 11:20
- Als Antwort markiert Robert BreitenhoferModerator Freitag, 4. November 2011 16:18
-
Hallo Stefan,
danke für deine Hilfe, was ich jedoch nicht verstehe ist, warum den Double wert auf 0 setzen der kommt doch aus meiner Textbox.
Denn hätte ich noch eine grundsätzliche Frage zu VB.NET:
--- Eine Klasse hat Member
--- An Member übergibt man Eingenschaften in Klammern "()"
In unserem Code:
Klasse - Double
Member - TryParse
Eigenschaft - TextBox1.Text, MeineZahl
Richtig??
Gib es ein verzeichnis wo steht welche Klasse welche Member hat und was diese bewirken?
Bitte hilf mir die zusammen hänge besser zu verstehen.
Gruß Hilko- Bearbeitet Robert BreitenhoferModerator Donnerstag, 29. September 2011 11:20 Formatierung
-
Hallo Hilko,
danke für deine Hilfe, was ich jedoch nicht verstehe ist, warum den Double wert auf 0 setzen der kommt doch aus meiner Textbox.
Denn hätte ich noch eine grundsätzliche Frage zu VB.NET:
--- Eine Klasse hat Member
--- An Member übergibt man Eingenschaften in Klammern "()"
"In Klammern"?
Klasse.Eigenschaft = Wert
Klasse.Methode()
Klasse.Methode( Wert )
Wert = Klasse.Methode()
...
In unserem Code:
Klasse - Double
Member - TryParse
Eigenschaft - TextBox1.Text, MeineZahl
Richtig??
Öhm. Nö. Du musst zwischen Eigenschaften und Methoden in Klassen unterscheiden. Bei Methoden wieder in Prozeduren (Sub) und Funktionen (Function). Letztere geben etwas zurück, erstere nicht.
Class MeineKlasse Private _Text As String Public Property Text As String Get Return _Text End Get Set _Text = Value End Set End Property Public Sub MachTextLeer() Me.Text = String.Empty End Sub Public Function VerdoppeleText() As String Return Me.Text & Me.Text End Function End Class
Gib es ein verzeichnis wo steht welche Klasse welche Member hat und was diese bewirken?
Bitte hilf mir die zusammen hänge besser zu verstehen.
Für die Standardklassen im .NET Framework gibt es die MSDN, da steht das. Für andere Klassen musst Du den Entwickler der Klasse fragen bzw. dessen Doku, wenn es eine gibt.
Hier ein Beispiel für die System.String Klasse:
http://msdn.microsoft.com/de-de/library/system.string.aspx
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
- Als Antwort vorgeschlagen Robert BreitenhoferModerator Donnerstag, 29. September 2011 14:35
- Bearbeitet Stefan FalzModerator Donnerstag, 29. September 2011 15:00 Anrede vergessen
- Als Antwort markiert Robert BreitenhoferModerator Freitag, 4. November 2011 16:18
-
Hallo Peter,Am Thu, 29 Sep 2011 05:25:51 +0000 schrieb peter haus:>> Alternativ hast du due Möglichkeit nur bestimmte Zeichen durch zu lassen.> Hier Zahlen, Backspace und Punkt.>> Private Sub txtBetrag_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles> txtBetrag.KeyPress>...> End Sub>>ich mache das auch an manchen Stellen ganz gerne so, aber nur für bestimmteAktionen.Bedenken sollte man nämlich: Der Anwender kann immer noch über dieZwischenablage beliebigen 'Müll' einfügen!Ciao,Georg
-
Hallo Stefan,
nochmal vielen Dank für Deine Erklärung, das heist eine Klasse kann Prozeduren und / oder Methoden und / oder Funktionen enthalten?
Gib mir Bitte noch ein Beispiel zu:
- Funktionen (zb. Mathematische-Berechnungen)
- Prozeduren
- Methoden
für welche Programm-Abläufe verwende ich welche art?
Oder das unterscheidet Methoden, Prozeduren und Funktionen.
Bitte entschuldige, meine in Deinen Augen sicher dummen Fragen, ich hoffen das du mir nochmal hilfst.
Gruß Hilko -
Hallo Hilko.
das heist eine Klasse kann Prozeduren und / oder Methoden und / oder Funktionen enthalten?
Methoden wird als Oberbegriff für Prozeduren und Funktionen verwendet. In VB.NET hast Du hier auch eine Unterscheidung in der Syntax.
Sub -> Prozedur
Function -> FunktionIn C# gibt es eine solche Unterscheidung mit separaten Schlüsselworten nicht.
public void MachWas() -> Prozedur
public int MachWas() -> FunctionGib mir Bitte noch ein Beispiel zu:
- Funktionen (zb. Mathematische-Berechnungen)
- Prozeduren
- Methoden
Streich "Methoden", was das bedeutet, steht oben.
Jeweils ein Beispiel findest Du in meinem vorigen Post. Wenn Du eine Rückgabe brauchst, schreibst Du eine Funktion
Public Function Irgendwas() As String
End Function
Wenn Du keine Rückgabe brauchst, die Methode (bzw. Prozedur) also bspw. nur etwas erledigt, was nach außen hin nicht wieder benötigt wird, schreibst Du eine Prozedur:
Public Sub Irgendwas()
End Sub
Bitte entschuldige, meine in Deinen Augen sicher dummen Fragen, ich hoffen das du mir nochmal
Es gibt keine dummen Fragen, nur dumme Antworten. Ich hoffe aber, dass meine Antwort dir hilft :)
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community -
Hallo Stefan,
nochmals vielen Dank für Deine Erklärungen, ich denke ich bin den Zusammenhängen ein ganzes Stück neher gekommen.
Wenn ich mir vorstelle das jemand wie Du die gesamte .NET Klassenbiblotek im Kopf hat, dann weis ich das ich noch einen weiten Weg
vor mir habe.
Ich möcht Dich deshalb Fragen ob Du bereit werst mit mir über teamvier und Telefon oder Skype mir zb einmal in der Wochen zu helfen, mit mir Codebeispiele
durch gehst oder/und mir meine Fragen beantwortest.
Bis ich einen gewissen Level erreicht habe ab dem es mir dan leichter fält mir weiteres Wissen einzueignen.
Gruß Hilko -
Hallo Hilko,
Wenn ich mir vorstelle das jemand wie Du die gesamte .NET Klassenbiblotek im Kopf hat
ganz sicher nicht :) Bei Classic ASP kannte ich früher jede Klasse, Methode, ... mit Vornamen. Beim .NET Framework geht das so gut wie gar nicht, dafür ist das doch erheblich zu umfangreich.
Wichtig ist nur, dass man sich in etwa mit den Strukturen des .NET Frameworks auskennt und die Namespaces zuordnen kann. Also bspw. System.Net -> Netzwerk, System.IO -> Dateizugriffe, Streams, ...
Das lernt man aber mit der Zeit.
Ich möcht Dich deshalb Fragen ob Du bereit werst mit mir über teamvier und Telefon oder Skype mir zb einmal in der Wochen zu helfen, mit mir Codebeispiele durch gehst oder/und mir meine Fragen beantwortest.
Wie letztens schon geschrieben biete ich das zwar schon entgeltlich an, derzeit habe ich aber leider keine Zeit. Daher muss ich dich da leider enttäuschen. Nächstes Jahr evtl. (falls meine Kunden gnädig sind^^)
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community -
Hallo Stefan
ich möchte eine "oder Prüfung" machen, (C#)
if (var_von < 1) | (var_von > 1000); MessageBox.Show("Bitte nur Werte Zwischen 1 und 1000 eingeben!!");
und der vertikale Strich wird mir als Fehler markiert, was mach ich falsch?
(Fehler:Fehler 1 Ungültiger Ausdruck "|".)
Gruß Hilko -
Hallo Hilko,
ich möchte eine "oder Prüfung" machen, (C#)
if (var_von < 1) | (var_von > 1000); MessageBox.Show("Bitte nur Werte Zwischen 1 und 1000 eingeben!!");
und der vertikale Strich wird mir als Fehler markiert, was mach ich falsch?
Du vermischst VB und C#. Die Syntax ist aber grundlegend unterschiedlich.
Wie im C# Forum von einem anderen User bereits geschrieben, musst Du in C# || (also zwei Pipe Zeichen) schreiben. Dann sollte das auch funktionieren.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community -
Ich kannte zwar den Unterschied zwischen | und || noch nicht (mal wieder was nebenbei gelernt :-) ...
Allerdings ist der Ausdruck so auch nicht korrekt.
if (var_von < 1) | (var_von > 1000); MessageBox.Show("Bitte nur Werte Zwischen 1 und 1000 eingeben!!");
Richtiger wäre es AFAIK so:if ((var_von < 1) | (var_von > 1000)) MessageBox.Show("....");Soweit ich weiß, müssen bei IF um den gesamten Ausdruck Klammern herum, und bei einer einfachen Anweisung (also keinem kompletten Anweisungsblock innerhalb von geschweiften { } Klammern) die Anweisung direkt dahinter, ohne ein Semikolon davor. Nur dahinter muss eines.Angaben ohne Gewähr ... ich schreibe einfach zu selten C# um wirklich sicher zu sein. :-)LG, Dennis. -
Hallo Hilko Schraivogel,
Ich gehe davon aus, dass die Antworten Dir weitergeholfen haben.
Solltest Du noch "Rückfragen" dazu haben, so gib uns bitte Bescheid.
Immer für eine Neue Frage einen Neuen Thread aufmachen.
Grundsätzlich ist zu jedem neuen Thema ein eigener Thread zu öffnen, denn dadurch wird die Übersicht gewahrt.
Ein eigener Thread nutzt der Kommunikation, verhindert Spannungen und Streit und trägt der Übersichtlichkeit in einem Forum bei.
Grüße,
Robert
- Bearbeitet Robert BreitenhoferModerator Freitag, 4. November 2011 16:20 Formatierung