per ora ho risolto in questo modo:
- creato un controllo utente "CustomDateTimePicker"
- trascinato una CheckBox, nominata "check"
- trascinato un DateTimePicker, nominato "data"
e questo il codice:
[System.ComponentModel.DefaultBindingProperty("Valore")]
public partial class CustomDateTimePicker : UserControl
{
DateTime? _valore=null;
public CustomDateTimePicker()
{
InitializeComponent();
check.Checked = false;
data.Value = DateTime.Today;
data.Enabled = false;
}
[Bindable(true)]
public DateTime? Valore
{
set
{
if (value == null)
{
check.Checked = false;
data.Value = DateTime.Today;
data.Enabled = false;
_valore = value;
}
else
{
check.Checked = true;
data.Enabled = true;
data.Value = (DateTime)value;
_valore = value;
}
}
get
{
return _valore;
}
}
private void check_CheckedChanged(object sender, EventArgs e)
{
if (check.Checked) Valore = data.Value;
else Valore = null;
}
private void data_ValueChanged(object sender, EventArgs e)
{
_valore = data.Value;
}
}