24-часовое форматирование, введенное пользователем программы - PullRequest
0 голосов
/ 30 августа 2011

У меня есть вопрос, связанный с форматированием текста для 24-часового времени.

Требуемый мне формат всегда следующий: 00: 00

Как сделать так, чтобы «:» отображалоськак только будет введена вторая цифра, как это требуется для отделения часов от минут, а также как я могу заставить 0 появляться для любых чисел, вплоть до 9?

Примеры: 00, 01, 02, 03, 04, 05, 06, 07, 08, 09.

Эти нули требуются, но пользователь может их забыть, введя их в текстовое поле?

Ответы [ 2 ]

0 голосов
/ 30 августа 2011

Если вы хотите: тоже используйте этот вариант.Добавьте 0, если пользователь вводит любое число> 3 (0, 1 и 2 могут быть двухзначными часами)

  Private Sub TextBox1_TextChanged(sender As System.Object, e As System.EventArgs) Handles TextBox1.TextChanged
    If TextBox1.Text.Length() = 2 Then
        TextBox1.Text &= ":"
        TextBox1.SelectionStart = TextBox1.Text.Length()
    End If
    If TextBox1.Text.Length() = 1 AndAlso TextBox1.Text > "2" Then
        TextBox1.Text = "0" & TextBox1.Text
        TextBox1.SelectionStart = TextBox1.Text.Length()
    End If
  End Sub
  Private Sub TextBox1_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
    If e.KeyChar = vbBack AndAlso TextBox1.Text.Length() = 3 Then
        TextBox1.Text = TextBox1.Text(0)
        e.Handled = True
    End If
End Sub
0 голосов
/ 30 августа 2011

Используйте MaskedTextBox .Вы можете установить для свойства .Mask значение "00:00", и поле будет выглядеть как _ _ : _ _, пока пользователь вводит время (поэтому оно не будет отображаться после второй цифры, но оно всегда будет указываться в качестве руководства).).

Чтобы убедиться, что часы находятся в диапазоне от 0 до 23, а минуты от 0 до 59, используйте метод Validating (подробности см. В [этом сообщении MSDN]).

...