How do you set a DateTimePicker to be read only?
You could hook the Changed event, and set the value back to your desired value (if different) -- this way you'll cover any cause for change (via mouse, or keyboard)
Have you considered using a different control, such as a read only textbox or even a label control?
I know this is very old but to help anyone else searching for this (As it was the first one I found through google) You can use:
this.dateTimePicker1.Enabled = false;
to make it act the same way as a a textbox would with this.textbox1.ReadOnly = true