有沒有辦法以編程方式在複選框上生成單擊事件?我正在尋找一個相當於Button.PerformClick();以編程方式點擊複選框
回答
爲什麼你需要模擬點擊,這行代碼不適合你的需要?
myCheckBox.Checked = !myCheckBox.Checked;
如果您需要在CheckBox的狀態變爲執行的邏輯,你應該使用CheckedChanged
事件,而不是Click
。
private void CheckBox1_CheckedChanged(Object sender, EventArgs e)
{
MessageBox.Show("You are in the CheckBox.CheckedChanged event.");
}
我發佈了這個,但問題是「點擊事件」。這不會生成點擊事件。 – 2009-11-19 15:53:07
也許我會重構控件,並使用CheckedChanged事件......任何事情都會更容易。 – Grzenio 2009-11-19 15:59:31
OP是否可以解釋爲什麼這是所選擇的答案,但實際上並沒有回答這個問題,即關閉onclick事件?! – Fandango68 2017-03-30 03:13:00
我還在建立一個新的工作站,所以我不能在此刻研究這個正確的,但UI Automation也許這可能是該複選框支持IInvokeProvider,你可以使用Invoke方法?
我不認爲你可以通過這種方式生成一個點擊事件,而無需直接調用checkBox_Click事件處理程序。但你可以這樣做:
checkBox.Checked = !checkBox.Checked;
即使你這樣做,CheckedChanged處理程序仍然會被調用。
爲什麼要在CheckBox上生成一個Click事件?
如果你想切換它的值:
theCheckBox.Checked = !theCheckBox.Checked;
如果要觸發連接到Click事件的一些功能,這是一個好主意,從Click
事件處理程序移出代碼爲獨立的方法可以在任何地方被稱爲:
private void theCheckBox_Click(object sender, EventArgs e)
{
HandleCheckBoxClick((CheckBox)sender);
}
private void HandleCheckBoxClick(CheckBox sender)
{
// do what is needed here
}
當你設計這樣的代碼,你可以輕鬆地從任何地方調用的功能:
HandleCheckBoxClick(theCheckBox);
相同的方法可以(也許應該)用於大多數控件事件處理程序;將盡可能多的代碼從事件處理程序中移出,並移入更可重用的方法中。
我想測試一個令人討厭的窗體,它啓用了..._ Click事件處理程序中的一些包含控件。 – Grzenio 2009-11-19 15:57:54
請注意 - 您不希望從CheckBox_Click和theCheckBox_CheckedChanged調用此方法,因爲在單擊該複選框時它將被調用兩次。 – 2009-11-19 15:57:59
@Grzenio:啓用/禁用「Click」中的控件即使是CheckBox也不是一個好主意;如果'Checked'屬性是由代碼分配的呢?這不會觸發'Click'事件,並且UI將處於不一致的狀態。您應該讓該代碼作爲「CheckedChanged」事件的結果來執行。 – 2009-11-19 16:04:07
上面的那些解決方案調用Checkbox.CheckedChanged事件。
如果你想顯式調用Click事件,你可以這樣:
checkBox1_Click(checkBox1, null);
這應該是答案 – Fandango68 2017-03-30 03:13:27
你沒有指定什麼樣的CheckBox控件。 ASP.net還是Windows?
假設一個網絡複選框控件,這是從代碼隱藏內部使用JavaScript調用來關閉它的方式...
代碼調用後面
步驟1中的JavaScript函數添加JavaScript代碼
<script type="text/javascript" language="javascript">
function Func() {
alert("hello!")
}
</script>
步驟2在WebForm中添加1腳本管理和添加1個按鈕太
第3步將此代碼添加到您的按鈕單擊事件中
ScriptManager.RegisterStartupScript(this.Page, Page.GetType(), "text", "Func()", true);
- 1. 以編程方式打勾複選框
- 2. 以編程方式設置複選框
- 3. 以編程方式檢查複選框
- 4. 以編程方式切換複選框
- 5. 複選框對話框以編程方式選擇
- 6. 與編程方式選擇複選框問題節點
- 7. 以編程方式點擊按鈕vb.net
- 8. 以編程方式點擊Android通知
- 9. 以編程方式點擊JQuery鏈接
- 10. 以編程方式點擊HTML按鈕
- 11. 以編程方式點擊按鈕 - JS
- 12. 以編程方式選擇ListView內的複選框
- 13. 用複選框以編程方式填充首選項
- 14. 以編程方式取消選中wx.CheckListBox中的複選框
- 15. 以編程方式取消選中角度邊界複選框
- 16. TreeView Excel 2007以編程方式選擇複選框
- 17. Android:以編程方式刪除特定複選框
- 18. 如何設置以編程方式創建的複選框ID?
- 19. WPF複選框以編程方式刪除事件
- 20. 使用Cocoa以編程方式創建複選框
- 21. 以編程方式在Android中調整複選框圖像
- 22. 如何在c#winform中以編程方式檢查複選框?
- 23. 使用powershell以編程方式構建複選框列表
- 24. 以編程方式檢查gridview中的複選框
- 25. 使用jQuery以編程方式觸發複選框
- 26. 以編程方式將複選框添加到NSTableView中
- 27. Magento與Mailchimp -----以編程方式添加複選框
- 28. 以編程方式在c#中設置複選框的值(wpf)
- 29. Swift:如何安排以編程方式添加的複選框?
- 30. 如何以編程方式檢查PDF中的複選框
正在改變被檢查的財產,因爲傑夫建議不夠?你能詳細說明嗎? – 2009-11-19 15:54:00
ASP.net或Windows窗體? – Fandango68 2017-03-30 03:15:25