Dezimaltrennzeichen erkennen
Habe ich zu erkennen Dezimaltrennzeichen in der aktuellen windows-Einstellung. Im mit visual studio 2010, windows form. Insbesondere, wenn DecimalSeparator ist ein Komma, wenn Benutzereingaben Punkt in textbox1, ich brauche null in textbox2.
Ich habe versucht mit diesem code aber nicht funktioniert:
private void tbxDaConvertire_KeyPress(object sender, KeyPressEventArgs e)
{
string uiSep = CultureInfo.CurrentUICulture.NumberFormat.NumberDecimalSeparator;
if (uiSep.Equals(","))
{
while (e.KeyChar == (char)46)
{
tbxConvertito.Text = "0";
}
}
}
Ich habe versucht auch diesen code, aber nicht die Arbeit:
private void tbxDaConvertire_KeyPress(object sender, KeyPressEventArgs e)
{
string uiSep = CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator;
if (uiSep.Equals(","))
{
if (e.KeyChar == (char)46)
{
tbxConvertito.Text = "0";
}
}
}
Kommentar zu dem Problem
"doch nicht funktioniert" sagt uns nicht, was schief gelaufen ist.
Da können wir nicht Ihre Gedanken Lesen oder sehen Sie Ihre Bildschirm, von hier, es wäre wirklich nützlich, wenn Sie enthalten eine Erläuterung, was "nicht funktioniert" bedeutet.
Vincenzolopalo, für den Anfang brauchen Sie nicht eine zweite while-Schleife, die Sie brauchen, um zu erklären, was Sie wollen besser.. werden Sie sagen, dass Sie nicht zulassen will "," auch bei der überprüfung
==
vs .Equals
sollten Sie wissen, Wann verwenden Sie einen über den anderen, die normalerweise beim Vergleich von Objekten die .Equals
funktionieren würde.. so oder so.. deine derzeitige Logik ist fehlerhaft, warum nicht Sie ein Maskededit-statt..? um Ihr Problem zu lösen verwenden Sie einfach ein MaskedTextBox
<==hier klicken
, um mehr darüber zu erfahren die Anzahl macht Sinn, es sagt mir 1500.00 sind, die Sie darzustellen versuchen-Währung..? Sie können um das Problem so gut
InformationsquelleAutor der Frage Vincenzo Lo Palo | 2013-01-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Lösung:
Hofft, dass das hilft. So, wenn Sie drücken Sie "." oder "," haben Sie Ihre Textfeld, in 0
EDIT:
Wenn Sie einfügen möchten ein 0 everytime, das Sie traf das Dezimaltrennzeichen, das ist der code:
InformationsquelleAutor der Antwort Andres
Eigentlich sollten Sie mit Hilfe
statt
Mit der zweiten gibt man Ihnen die OS-default-Einstellungen, die anders sein kann, dann Benutzer Regionalen Schauplätze für bestimmtes Benutzerkonto angemeldet zu diesem PC
InformationsquelleAutor der Antwort user1826054
Sollten Sie nicht verwenden eine
while
Schleife, ich denke, es wird das einfrieren der Anwendung, verwenden Sieif
statt, das problem könnte hier seinInformationsquelleAutor der Antwort ppetrov