我有一個自定義的複選框控件從System.Windows.Forms.Control 繼承,它沒有CheckedChanged事件。我想實現CheckedChange與點網本地CheckBox相同。我該怎麼做呢?生成自定義複選框OnCheckedChanged
1
A
回答
4
你繼承fromn控制,而不是複選框,因此該解決方案是類似於Frigik提出的一個,但它不完全那個。
的所有你必須在你的類定義事件,即:
public event EventHandler CheckedChanged;
以這種方式使用您的控制可以訂閱每個開發者首先/退訂事件。這還不夠,因爲事件永遠不會被觸發。要做到這一點,你必須定義一個方法來觸發它,並且調用此方法,只要你控制的狀態發生變化:
private void RaiseCheckedChanged()
{
if (CheckedChanged!= null)
CheckedChanged(this, EventArgs.Empty);
}
如果這個方法會被稱爲取決於你的控制結構。例如,如果你有一個屬性選中,你可以在其setter中調用該方法:
public bool Checked
{
get { return _checked; }
set
{
_checked = value;
RaiseCheckedChanged();
}
}
2
試試這個代碼:
CheckBox chkList1 = new CheckBox();
chkList1.CheckedChanged += new EventHandler(CheckBox_CheckedChanged);
protected void CheckBox_CheckedChanged(object sender, EventArgs e)
{
// Do your stuff
}
2
試試這個:
public class YourCheckBox:CheckBox
{
public event EventHandler<EventArgs> OnCheckedChangedCustom;
protected override void OnCheckedChanged(EventArgs e)
{
if (OnCheckedChangedCustom!=null)
{
OnCheckedChangedCustom(this, EventArgs.Empty);
}
base.OnCheckedChanged(e);
}
}
相關問題
- 1. 自定義複選框
- 2. 如何從gridview複選框的複選框OnCheckedChanged
- 3. ASP.NET用戶控件複選框OnCheckedChanged
- 4. android複選框onCheckedChanged不被調用
- 5. 自動複選框生成Excel VBA
- 6. Bootstrap 4:自定義複選框邊框
- 7. 自定義複選框/單選按鈕
- 8. 自定義ListView複選框選擇
- 9. 自定義複選框首選項
- 10. C#自定義複選框+自定義綁定數據類型
- 11. 生成自定義消息框類
- 12. 自定義複選框(使用圖像代替複選框)
- 13. 生成jsf複選框
- 14. 動態生成複選框
- 15. Django多生成複選框
- 16. 複選框生成字母
- 17. 如何爲動態生成的複選框定義消息?
- 18. Android中的自定義複選框
- 19. 高級自定義字段複選框
- 20. AngularJS複選框檢查自定義值
- 21. MFC VC++自定義複選框圖片
- 22. 自定義列表單擊複選框
- 23. Style Bootstrap 4自定義複選框
- 24. WPF的自定義複選框樣式
- 25. 複選框的自定義圖片?
- 26. 提交自定義複選框的值
- 27. WPF自定義LED複選框
- 28. 製作自定義複選框
- 29. IE 8自定義複選框圖像
- 30. 添加自定義複選框ArrayAdapter
謝謝Krunal,但我認爲你不明白我的意思。 我想在我的控件的事件列表中定義「CheckedChanged」事件,當程序員想要在OnCheckedChange中編寫代碼時,他們可以這樣做。 – Mohsen
假設您沒有「CheckedChanged」事件並且您需要它。不幸的是,System.Windows.Forms.Control在事件列表 – Mohsen
中沒有「CheckedChanged」事件您的問題是告訴您在您的'.cs'文件中生成了自定義複選框,並且您希望在您的「.cs」文件中生成複選框「CheckedChanged」 '.cs'文件是否正確?可以把你所嘗試過的? –