winforms .net의 datetimepicker 컨트롤에 확인란이 있습니다. 그러나 확인란을 선택하거나 선택 취소했을 때 트리거되는 이벤트를 찾을 수 없습니다. 출구가 있습니까?datetimepicker C# winform 체크/체크되지 않은 이벤트
답변
지저분 트리거 않는이 (가) "확인"그래서 만약 주어질거야 결정할 수, 이전이 "확인"새 비교하기 위해 값을 저장해야 상태가 변경되었습니다 :
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 ...
}
}
그것은 그러나 값 변경 이벤트
코드에서 Checked 속성을 설정하지 않은 경우. –
동일한 문제로 실행됩니다. winForms DateTimePicker 컨트롤에서 CheckedChangedEvent가 필요했습니다. 그래서 저는 저의 답변 앞에서 영감을 얻어이 이벤트를 구현 한 DateTimePicker에서 상속받은 DateTimePicker2라는 상속 된 사용자 정의 컨트롤을 만들었습니다. 그것은 작동하지만 보증은없는 것 같습니다.
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; }
}
}
오프 물론
디자이너에서 DateTimePicker2_ValueChanged 이벤트에 가입하는 것을 잊지 마세요.- base.Checked 속성이 없기 때문에 나는, 이전의 값의 트럭을 유지하는 _checked 필드합니다 (base.Checked 하나를 숨기기 위해) 새로운 Checked 속성을 모두 사용하는 이유는,이다 프로그래밍 방식으로 변경되면 ValueChanged 이벤트가 발생하므로이를 수행 할 수있는 새 속성이 필요합니다.
- this.Checked 새 속성은 UI에서 변경 될 때 ValueChanged 이벤트를 발생시키지 않으므로 base.Checked 속성을 추적하는 플래그가 필요합니다.
기본적으로 두 가지 방법의 조합이 필요했습니다.
이 정보가 도움이되기를 바랍니다.
좋은 솔루션입니다. 패션 2017에 따라 만들려면 델리게이트 대신에'EventHandler
나는 이것이 매우 오래된 것을 알고 있지만 이것은 누군가를 도울 수 있습니다.
당신은 DataTimePicker.MouseUp
이벤트
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...
}
}
또한 체크 박스를 활성화 할 수있는 스페이스 키 누름을 얻기 위해 KeyUp
이벤트와 동일한 작업을 수행해야합니다을 캡처 할 수 있습니다.
- 1. DateTimePicker Leave/ValueChanged 이벤트
- 2. C# DateTimePicker - 굵은 날짜?
- 3. datagridview datetimepicker C# help
- 4. C# DateTimePicker 롤오버 문제
- 5. Winform 양식 폐쇄 이벤트
- 6. C# DateTimePicker 최대 날짜 범위
- 7. C# WinForms DateTimePicker 구성 요소
- 8. C# : DateTimePicker 컨트롤의 기본 시간대
- 9. C#을 닷넷을 DateTimePicker 문제
- 10. C# DateTimePicker 사용자 지정 형식
- 11. WinForm C#
- 12. C#에서 이벤트 처리 SQL 서버를 사용하는 winform 응용 프로그램
- 13. winform C# : C에서 이벤트 후 다른 폼 컨트롤 삽입 #
- 14. .NET DateTimePicker
- 15. Infragistics UltraGrid C# winform
- 16. C# Winform/XNA Question
- 17. C#의 WinForm 질문
- 18. C# WinForm Menu Strip
- 19. C# Generics 및 Winform
- 20. C# WinForm 호출과 동시성
- 21. C# Winform 이진 아이콘
- 22. C# 콤보 상자 winform
- 23. C# Winform Datagrid CRUD
- 24. C# 다른 형식의 WinForm?
- 25. C#에서 winform 인쇄
- 26. TabControl winform C#
- 27. C#에서 datetimepicker 시간을 재설정하는 방법
- 28. Open DateTimePicker C# 프로그래밍 방식으로 프로그래밍
- 29. C# WinForms DateTimePicker 사용자 지정 형식
- 30. DateTimePicker, C#에서 일정 유형 변경 중?
여기를 참고하십시오 http://social.msdn.microsoft.com/Forums/en-US/winforms/thread/27dd3141-5dfb-439e-8e30-e051a019303a/ – V4Vendetta