Хотите изменить DateTimePicker.Value.TimeOfDay, но это только для чтения

Я пытаюсь проверить введенное время в элементе управления DateTimePicker и исправить его до ближайшего допустимого значения в C#

if (Summer1.Value.TimeOfDay > Summer2.Value.TimeOfDay)
                Summer1.Value.TimeOfDay = Summer2.Value.TimeOfDay;

Это дает мне следующее:

Свойство или индексатор System.DateTime.TimeOfDay нельзя назначить - оно доступно только для чтения

Почему он обрабатывает объект DateTimePicker как системное время? Я не смог найти ничего, связанного с состоянием элемента управления только для чтения в VS 2003.

1 ответ

Решение

Summer1.Value является собственностью DateTimePicker и это имеет тип DateTime, Это свойство присваивается.

Вы пытаетесь назначить Summer1.Value.TimeOfDay - которая является собственностью DateTime объект Summer1.Value - и это свойство не имеет сеттера в DateTime учебный класс.

Summer1.Value = Summer2.Value

должно работать нормально, но может не дать желаемого результата.

Наиболее близким к желаемому результату будет что-то вроде

Summer1.Value = Summer1.Value.Date + Summer2.Value.TimeOfDay;
Другие вопросы по тегам