2017-01-06 4 views
0

In C#, habe ich ein Textfeld, das nur Zahlen akzeptieren, aber ich möchte einen Code zu einer Zeit in dem folgenden Format zu akzeptieren: "____: ____: ____", so dass wenn der Benutzer schreibt Teil davon vervollständigt es die fehlenden mit Nullen; Beispiel: Der Benutzer schreibt: "_2: 12: _3" sollte es als "02:12:03" abschließen.C# Zeit Format füllen

Hat jemand diesen Code?

+4

Nicht genau, was Sie wollen, aber [Exemplarische Vorgehensweise: Arbeiten mit dem MaskedTextBox-Steuerelement] (https://msdn.microsoft.com/en-us/library/kkx4h3az (v = vs.100) .aspx) kann für Sie von Interesse sein. –

+4

Es wird nicht in allen Fällen funktionieren. Wenn jemand eine Zeichenfolge in die Box einfügt, wird die Validierung übersprungen. Frage wurde in der Vergangenheit oft gestellt. Es ist besser, einen DataTimePicker zu verwenden. – jdweng

+0

Ist die Frage über WinForms, WPF oder etwas anderes? – grek40

Antwort

1

Ich denke, die beste die Replace() Funktion in C# wie folgt zu verwenden wäre:

string x = "this is an example of a string with a _ character"; 

string z = x.Replace('_', '0'); 
0
private void SearchBar_TextChanged(object sender, TextChangedEventArgs e) 
     { 
      int value = int.Parse(YourTextBox.Text); 
      if (value<10) 
      { 
       YourTextBox.Text = "0" + value; 
      } 
     } 

und Natürlich können Sie eine andere Logik wie hinzufügen, wenn der Benutzer für die Minuten mehr als 60 eintritt Textfeld Der Text sollte durch eine leere Zeichenfolge ersetzt werden

+0

Danke, dass ich es gemacht habe; –

+0

'string str = x.Text; int i = 0; string ss = ""; foreach (Zeichenkette s in neuer Liste (str.Split (':'))) { i = int.Parse (s); if (int.Parse (s) <10) { ss + = '0' + System.Convert.ToString (i); } sonst ss + = System.Convert.ToString (s); } i = int.Parse (ss); x.Text = i.ToString ("D6"); ' –