powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / ввести последние 2 цифры года и получить 4х значный год
11 сообщений из 11, страница 1 из 1
ввести последние 2 цифры года и получить 4х значный год
    #38567816
bombimbom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
подскажите как можно реализовать такую задачу или где можно почитать?
например в текст боксе ввожу 13 нажимаю таб или перехожу на другую строку и 13 становится 2013
также если ввести например 96 то будет 1996.

Большой спасибо!!!
...
Рейтинг: 0 / 0
ввести последние 2 цифры года и получить 4х значный год
    #38567837
Фотография D129
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bombimbom,

Если особо не заморачиваться со стандартами то можно так:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
private void textBox1_Validated(object sender, EventArgs e)
		{
			string year2digits = textBox1.Text;
			int yNum = 0;

			int.TryParse(year2digits, out yNum);

			if (yNum > 50)
			{
				yNum = 1900+yNum;
			}
			else
			{
				yNum = 2000+yNum;
			}

			textBox1.Text = yNum.ToString();
		}
	}



У текст бокса есть эвент такой - Validated.
...
Рейтинг: 0 / 0
ввести последние 2 цифры года и получить 4х значный год
    #38567850
bombimbom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
 If Asc(e.KeyChar) <> 8 Then
            If Asc(e.KeyChar) >= 48 And Asc(e.KeyChar) <= 57 Then
                Dim t As String
                t = TextBox7.Text
                If t Like "##" Or t Like "##.##" Or t Like "####" Then
                    t = t & "."
                    TextBox7.Text = t
                    TextBox7.SelectionStart = TextBox7.Text.Length
                    TextBox7.ScrollToCaret()
                End If
                If t Like "##.##.##" Then  ' это я только сейчас добавил думаю что гдето тут надо чтото добавить
                    t = t.Substring(-1, 2)
                    t = 20 & t
                    TextBox7.Text = t
                    TextBox7.SelectionStart = TextBox7.Text.Length
                    TextBox7.ScrollToCaret()
                End If
            Else
                e.Handled = True
            End If
        End If



у меня есть такая штука она автоматически точки проставляет
а можно ее както доработать, я пока думаю так
что нужно кусок доработать на возможность реагирования на таб если формат стоит ##.##.##
только не знаю как....
...
Рейтинг: 0 / 0
ввести последние 2 цифры года и получить 4х значный год
    #38567857
Фотография D129
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bombimbom
Код: vbnet
1.
  Like "##.##.##"  




Убили. Всегда говорю, что я тупой, но тут осознал это с особой остротой...
:-)
...
Рейтинг: 0 / 0
ввести последние 2 цифры года и получить 4х значный год
    #38567860
bombimbom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну это я так себе представляю.. готов принять другие представления об этом :)
...
Рейтинг: 0 / 0
ввести последние 2 цифры года и получить 4х значный год
    #38567870
Фотография D129
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bombimbomну это я так себе представляю.. готов принять другие представления об этом :)
Ну если потеоритизировать - то не очень хорошо так насиловать фреймворк.
Зачем перехватывать все нажатия на клавиши? Это же сложно. Я, например, запутался.
Винформы писали не враждебные инопланетяне, и для тривиальных вещей (проверка или коррекция ввода) есть и легкие способы.

В рамках задания был текстбокс,
но есть же еще и MaskedTextbox....
...
Рейтинг: 0 / 0
ввести последние 2 цифры года и получить 4х значный год
    #38567888
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
D129bombimbom,

Если особо не заморачиваться со стандартами то можно так:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
private void textBox1_Validated(object sender, EventArgs e)
		{
			string year2digits = textBox1.Text;
			int yNum = 0;

			int.TryParse(year2digits, out yNum);

			if (yNum > 50)
			{
				yNum = 1900+yNum;
			}
			else
			{
				yNum = 2000+yNum;
			}

			textBox1.Text = yNum.ToString();
		}
	}



У текст бокса есть эвент такой - Validated.
Ликбез: Calendar.ToFourDigitYear Method :)
...
Рейтинг: 0 / 0
ввести последние 2 цифры года и получить 4х значный год
    #38567922
Фотография D129
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAЛикбез: Calendar.ToFourDigitYear Method :)
Лень было искать. Тем более, что вопрос был скорее про эвент.
:-)
...
Рейтинг: 0 / 0
ввести последние 2 цифры года и получить 4х значный год
    #38568269
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAЛикбез: Calendar.ToFourDigitYear Method :)Не знал. :-)

Всегда делал так:
Код: c#
1.
2.
3.
4.
               result = DateTime.Parse( 
                    string.Join(CultureInfoHelper.Ru.DateTimeFormat.DateSeparator, 1, 1, result), 
                    CultureInfoHelper.Ru 
                ).Year; 
...
Рейтинг: 0 / 0
ввести последние 2 цифры года и получить 4х значный год
    #38568416
bombimbom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо за подсказки попробую разобраться

я к сожалению не знаю всех правил написания кода :) я только учусь

P.S.
...
Рейтинг: 0 / 0
ввести последние 2 цифры года и получить 4х значный год
    #38568871
igr_ok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bombimbomспасибо за подсказки попробую разобраться

я к сожалению не знаю всех правил написания кода :) я только учусь

P.S.Учитывая, что вы только учитесь...Для ввода данных пользователем используйте специальные компоненты, которые для этого типа данных предназначены(В нашем случае это могут быть MonthCalendar,DateTimePicker). Тогда вам не придется писать "защиту от дурака", т.к. в этих компонентах она реализована.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / ввести последние 2 цифры года и получить 4х значный год
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]