Creamos una bandera para saber si se presiono la tecla tabuladora o la tecla shift, tambien nos servira para cuando el control de la fecha pierda el foco.
bool banderaFrom = false;
Activamos el evento KeyDown del control.
void dateFrom_KeyDown(object sender, ystem.Windows.Forms.KeyEventArgs e) { if (e.KeyCode != Keys.Tab && e.KeyCode != Keys.ShiftKey) { banderaFrom = true; dateFrom.EditValueChanged -= dateFrom_EditValueChanged; } else if (banderaFrom) { banderaFrom = false; dateFrom_EditValueChanged(sender, new EventArgs()); dateFrom.EditValueChanged += dateFrom_EditValueChanged; } }Creamos el metodo LostFocus ya que este no se encuentra en el control:
void dateFrom_LostFocus(object sender, System.EventArgs e) { BaseRuntime.Trace("hcecli", "histórico", "dateFrom_LostFocus"); if (banderaFrom) { banderaFrom = false; dateFrom_EditValueChanged(sender, new EventArgs()); dateFrom.EditValueChanged += dateFrom_EditValueChanged; } }Pegamos al control en la parte del Designer el evento de la siguiente forma:
this.dateFrom.LostFocus += new System.EventHandler(this.dateFrom_LostFocus);