2012-02-09 2 views
1

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

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; 
+0

Summer1.Value = Summer2.Value работает хорошо для меня. Большое спасибо. –