winforms.net的datetimepicker控件中有一個複選框。 但是我找不到在複選框被選中或未選中時觸發的事件。 有沒有出路?如何獲取datetimepicker c#winform選中/未選中事件
回答
You'll有存儲舊「檢查」,以比較新的一個值,所以you'll能夠確定「選中」狀態已更改:
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。因此,以我之前的答案爲靈感,我創建了一個名爲DateTimePicker2的繼承的用戶控件,該控件繼承自實現此事件的DateTimePicker。它看起來像它的作品,但沒有保證。
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事件。
爲什麼我用這兩個新的Checked屬性(隱藏base.Checked之一)和_checked場保留舊值的卡車究其原因,是因爲
- 的base.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. c#DateTimePicker驗證設置爲未選中或未選中的值
- 2. 如何獲取C中未選中複選框的值#
- 3. DataGridView篩選OnClick事件(C#WinForm)
- 4. 如何捕獲列表框中複選框的選中和未選中事件。
- 5. 如何提高kendotreeviewchekbox點擊事件選中/未選中?
- 6. 當複選框被選中/未選中時運行事件Gridview C#
- 7. C#DataGridView複選框選中事件
- 8. 如何在選擇框中獲取所有選項值(選定/未選中)
- 9. 如何從datetimepicker獲取值
- 10. h:selectOneRadio選擇獲取未選中
- 11. 獲取GridView中的複選框選中的事件
- 12. JQuery將事件設置爲複選框已選中/未選中
- 13. 如何做的DateTimePicker選擇C#
- 14. TChart:在ExtraLegendTool中不工作的選中/未選中事件
- 15. 如何分別使用複選框選中,未選中和select_node事件
- 16. 如何處理在extjs4複選框上選中和未選中的事件?
- 17. 如何獲取複選框列表未選中項目
- 18. 如何捕捉Jquery中的複選框選中/取消選中事件
- 19. 如何獲取複選框列表的值(不選中或未選中)
- 20. Angular2複選框 - 取消選中事件
- 21. 如何從c#winform中的datetimepicker禁用星期日?
- 22. 如何獲取jQuery事件委託中的選定元素?
- 23. 如何在AjaxFileUpload onuploadComplete事件中獲取選定的dropdownvalue?
- 24. 如何在AngularJS中獲取單詞選擇事件
- 25. Android:如何點擊ListView中的複選框時獲取事件?
- 26. 如何使用Firefox FUEL獲取TabOpen事件中的選項卡?
- 27. 如何在DragOver事件中獲取列表框選定項目
- 28. 如何獲取Angular2中的選擇框單擊事件
- 29. 如何獲取multiselect onchange事件中的複選框值
- 30. 如何在Carbon中獲取菜單項選定事件
看看這裏http://social.msdn.microsoft.com/Forums/en-US/winforms/thread/27dd3141-5dfb-439e-8e30-e051a019303a/ – V4Vendetta