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

Большой спасибо!!!
...
Рейтинг: 0 / 0
20.02.2014, 17:04
    #38567837
D129
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ввести последние 2 цифры года и получить 4х значный год
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
20.02.2014, 17:10
    #38567850
bombimbom
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ввести последние 2 цифры года и получить 4х значный год
Код: 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
20.02.2014, 17:13
    #38567857
D129
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ввести последние 2 цифры года и получить 4х значный год
bombimbom
Код: vbnet
1.
  Like "##.##.##"  




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

В рамках задания был текстбокс,
но есть же еще и MaskedTextbox....
...
Рейтинг: 0 / 0
20.02.2014, 17:33
    #38567888
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ввести последние 2 цифры года и получить 4х значный год
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
20.02.2014, 18:15
    #38567922
D129
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ввести последние 2 цифры года и получить 4х значный год
skyANAЛикбез: Calendar.ToFourDigitYear Method :)
Лень было искать. Тем более, что вопрос был скорее про эвент.
:-)
...
Рейтинг: 0 / 0
21.02.2014, 06:21
    #38568269
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ввести последние 2 цифры года и получить 4х значный год
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
21.02.2014, 09:59
    #38568416
bombimbom
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ввести последние 2 цифры года и получить 4х значный год
спасибо за подсказки попробую разобраться

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

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

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

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


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