Hay una casilla de verificación en el control datetimepicker de winforms .net. Pero no pude encontrar el evento que se desencadena cuando la casilla de verificación está marcada o desmarcada. ¿Hay una salida?Cómo obtener datetimepicker C# winform marcado/desmarcado evento
Respuesta
se le realizarán para almacenar el viejo "marcada" valor con el fin de comparar a la nueva, por lo que vas a poder determinar si el "marcado" el estado ha cambiado:
bool oldDateChecked = false; //if it's created as not checked
private void dtp_filtro_date_ValueChanged(object sender, EventArgs e)
{
if (this.dtp_filtro_date.Checked != oldDateChecked)
{
oldDateChecked = this.dtp_filtro_date.Checked;
//do your stuff ...
}
}
Sin embargo, sí desencadenar el evento valor cambiado
A menos que la propiedad Comprobada esté configurada en el código. –
Se produce el mismo problema. Necesitaba un evento CheckedChangedEvent en un control de DateTimePicker winforms. Entonces, con la inspiración de las respuestas que tenía ante mí, creé un Control de usuario heredado llamado DateTimePicker2, heredando de DateTimePicker que implementa este evento. Parece que funciona, pero no hay garantías.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace MyNameSpace
{
public partial class DateTimePicker2 : DateTimePicker
{
private bool _checked;
public new bool Checked
{
get
{
return base.Checked;
}
set
{
if (value != base.Checked)
{
base.Checked = value;
_checked = base.Checked;
OnCheckedChanged(new CheckedChangedEventArgs { OldCheckedValue = !value, NewCheckedValue = value });
}
}
}
public event CheckedChangedEventHandler CheckedChanged;
public DateTimePicker2()
{
InitializeComponent();
_checked = Checked;
}
protected virtual void OnCheckedChanged(CheckedChangedEventArgs e)
{
if (CheckedChanged != null) CheckedChanged(this, e);
}
private void DateTimePicker2_ValueChanged(object sender, EventArgs e)
{
if (Checked != _checked)
{
_checked = Checked;
CheckedChangedEventArgs cce = new CheckedChangedEventArgs { OldCheckedValue = !_checked, NewCheckedValue = _checked };
OnCheckedChanged(cce);
}
}
}
public delegate void CheckedChangedEventHandler(object sender, CheckedChangedEventArgs e);
public class CheckedChangedEventArgs : EventArgs
{
public bool OldCheckedValue { get; set; }
public bool NewCheckedValue { get; set; }
}
}
Y fuera de curso no se olvide de suscribirse al evento DateTimePicker2_ValueChanged del diseñador.
La razón por la que he usado tanto una nueva propiedad Checked (para ocultar el base.Checked uno) y un campo para mantener _checked camión del valor anterior, se debe a
- la propiedad base.Checked no lo hace desencadenar el evento ValueChanged cuando se modificó mediante programación y, por lo tanto, necesitaba una nueva propiedad que pudiera hacer eso.
- esto. La propiedad comprobada nueva no desencadena el evento ValueChanged cuando se cambió de la UI y, por lo tanto, necesitaba un indicador que rastreara la propiedad base.Checked.
Básicamente se necesitaba una combinación de ambos enfoques.
Espero que esto ayude.
Buena y simple solución. Para hacerlo de acuerdo con la moda 2017, use 'event EventHandler
Sé que esto es muy viejo, pero esto podría ayudar a alguien.
Puede capturar DataTimePicker.MouseUp
caso
private void dateTimePicker1_MouseUp(object sender, MouseEventArgs e)
{
if (((DateTimePicker)sender).Checked)
{
//Do whatever you need to do when the check box gets clicked
}
else
{
//Do another stuff...
}
}
Usted tendrá que hacer lo mismo con KeyUp
evento con el fin de conseguir la prensa tecla de espacio que también podrían activar la casilla de verificación.
- 1. DateTimePicker Valor predeterminado: ¿Cómo evitarlo?
- 2. C# app.config en winform
- 3. Cómo obtener la hora UTC en jQuery datetimepicker
- 4. Abrir el control DateTimePicker C# programáticamente
- 5. C# Generics y Winform
- 6. Controles Clon - C# (Winform)
- 7. Cómo utilizar DateTimePicker en WPF?
- 8. C# Winform freezing en SerialPort.Close
- 9. C# Winform ProgressBar y BackgroundWorker
- 10. DateTimePicker para WPF 4.0
- 11. Trabajador de fondo C winform
- 12. ¡DateTimePicker nunca se actualiza!
- 13. Cómo agregar ayuda a la aplicación winform C#
- 14. DateTimePicker wpf toolkit binding
- 15. ¿Existe un enfoque fluido para manejar el evento WinForm?
- 16. Seleccione un elemento en ListBox Control (WinForm & C#) en MouseDown Evento
- 17. C# usando controles winform en otra clase
- 18. DateTime Picker en WinForm ¿Cómo elegir el tiempo?
- 19. Cómo establecer un valor datetimepicker a DateTime.MaxValue
- 20. ¿Cómo formato la fecha en jQuery datetimepicker?
- 21. ¿Cómo puedo manejar un formulario de Windows datetimepicker ArgumentOutOfRangeException?
- 22. DateTimePicker: elegir fecha y hora
- 23. Controles de winform atractivos para C#
- 24. C# Transparencia WPF sobre controles Winform
- 25. Obtener el índice seleccionado anterior en el cuadro Combo de Winform
- 26. C#: Cómo cambiar la posición de dos controles winform
- 27. Escribir un evento personalizado global en C#
- 28. ¿Cómo obtener un evento táctil continuo?
- 29. PHP. ¿Cómo obtener un evento bimensual recurrente?
- 30. Cómo cambiar el cultivo a DateTimepicker o control de calendario en .Net
Eche un vistazo aquí http://social.msdn.microsoft.com/Forums/en-US/winforms/thread/27dd3141-5dfb-439e-8e30-e051a019303a/ – V4Vendetta