146 / 143 / 32
Регистрация: 21.01.2012
Сообщений: 545
1

Связать значения выделенного диапазона на календаре и datePicker

18.05.2012, 16:02. Показов 2403. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Например, есть Календарь с
C#
1
calendar.SelectionMode = CalendarSelectionMode.SingleRange;
и 2 DatePicker: один задает первую дату диапазона, второй - последнюю.
Задача в том, чтобы связать значения выделенного диапазона на календаре и эти Пикеры, как лучше всего их связывать?
Я сделал с помощью кучи if, но мне кажется что так коряво...

Добавлено через 57 минут
Щас делаю так, неужели это верно?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
        /// <summary>
        /// Сначала проверяем переменные, потом пикеры(Datetimepicker)
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void calendar_SelectedDatesChanged(object sender, SelectionChangedEventArgs e)
        {
            DateTime datestart = (DateTime)e.AddedItems[0];
            DateTime dateend = (DateTime)e.AddedItems[e.AddedItems.Count-1];
            //Если дата начала не такая
            if (!datestart.Year.Equals(Data.TimeStart.Year) || !datestart.Month.Equals(Data.TimeStart.Month) ||
                !datestart.Day.Equals(Data.TimeStart.Day))
            {
                Data.TimeStart = datestart;
            }
            //Если дата конца не такова
            if (!dateend.Year.Equals(Data.TimeEnd.Year) || !dateend.Month.Equals(Data.TimeEnd.Month) ||
                  !dateend.Day.Equals(Data.TimeEnd.Day))
            {
                Data.TimeEnd = dateend;
            }
            //стартпикер
            if (!datestart.Equals(datePicker_Start.SelectedDate))
            {
                datePicker_Start.SelectedDate = datestart;
            }
            //эндпикер
            if (!dateend.Equals(datePicker_End.SelectedDate))
            {
                datePicker_End.SelectedDate = dateend;
            }
            CalculateDays();
        }
 
        private void datePicker_Start_SelectedDateChanged(object sender, SelectionChangedEventArgs e)
        {
            DateTime date = (DateTime)e.AddedItems[0];
            //Если переменная глобальная не такая
            if (!date.Year.Equals(Data.TimeStart.Year) || !date.Month.Equals(Data.TimeStart.Month) ||
                !date.Day.Equals(Data.TimeStart.Day))
            {
                Data.TimeStart = date;
            }
 
            calendar.SelectedDates.AddRange(Data.TimeStart, Data.TimeEnd);
        }
 
        private void datePicker_End_SelectedDateChanged(object sender, SelectionChangedEventArgs e)
        {
            DateTime date = (DateTime)e.AddedItems[0];
            //Если переменная глобальная не такая
            if (!date.Year.Equals(Data.TimeEnd.Year) || !date.Month.Equals(Data.TimeEnd.Month) ||
                !date.Day.Equals(Data.TimeEnd.Day))
            {
                Data.TimeEnd = date;
            }
 
            calendar.SelectedDates.AddRange(Data.TimeStart, Data.TimeEnd);
        }
    }
Добавлено через 3 часа 24 минуты
C#
1
this.calendar
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.05.2012, 16:02
Ответы с готовыми решениями:

На основе значений выделенного диапазона сформировать значения нового диапазона
На основе значений выделенного диапазона сформировать значения нового диапазона по указанному в...

Запомнить значения из выделенного диапазона в переменную
подскажите как запомнить значения из выделенного диапазона? не copy или paste, а просто запомнить....

Копирование выделенного диапазона ячеек, только значения
Всем привет. Помогите пожалуйста, дописать код: Sub CopySelectedRangeToNewSheet() Dim...

Все значения выделенного диапазона листа Excel умножить на заданное число
Разработайте форму с одним полем и одной кнопкой. В поле вводится число, а при нажатии на кнопку...

1
101 / 100 / 18
Регистрация: 04.09.2009
Сообщений: 133
18.05.2012, 17:47 2
C#
1
2
3
if (!date.Year.Equals(Data.TimeEnd.Year) || 
    !date.Month.Equals(Data.TimeEnd.Month) ||
    !date.Day.Equals(Data.TimeEnd.Day))
можно заменить на:
C#
1
if(date.Date != Data.TimeEnd.Date)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.05.2012, 17:47
Помогаю со студенческими работами здесь

Нахождение максимального значения среди отрицательных элементов выделенного диапазона рабочей таблицы
Разработать подпрограмму нахождения максимального значения сре ди отрицательных элементов...

импорт выделенного диапазона
добрый день!у меня есть таблица в Еxcel ee нужно импортировать, но только тот диапазон который был...

Найти максимум из выделенного диапазона
Нужно найти максимальное значение в ячейке из выделенного диапазона и закрасить ячейку каким-либо...

Переход по ячейкам выделенного диапазона
Не могу понять систему. В диапазоне определил ячейки с числами. Переопределил диапазон. При ручном...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru