[英]Why is the button's event handler not firing?
我有一個帶有事件處理程序的按鈕; 在設計器中雙擊它會將我帶到代碼中。 處理程序沒有被解除/分離的任何地方。
我希望運行的一些代碼顯然不是,所以我把一堆MessageBox.Show()s放在處理程序中,即使在最開始,但它們都沒有顯示(注意:我無法單步執行代碼;我必須這樣做(arggghhhh))。
這是一些代碼:
private void btnFind_Click(object sender, System.EventArgs e) // Find and list Records
{
MessageBox.Show("Made it into btnFind_Click 0"); //TODO: Remove after debugging
try
{
if (barcodeScanner != null)
{
// Turn off the listening
barcodeScanner.BarcodeScan -= new BarcodeScanner.BarcodeScanEventHandler(barcodeScanner_BarcodeScan);
}
MessageBox.Show("Made it into btnFind_Click 1"); //TODO: Remove after debugging . . .
什么可能阻止執行此代碼?
根據Mike C的想法,我在button_close處理程序中添加了一個MessageBox。 當我點擊它時,它會觸發,但只有在其他代碼首先運行之后 ; 在這種情況下,其他代碼不會阻止Close_Click(最終)觸發; 但是,使用“查找”按鈕,它完全搶占了它......我看,當我單擊它時,我從最后的“關閉”按鈕看到消息,但是當我單擊它時,我從未在“查找”按鈕處理程序中看到任何消息。 ..
哦,我的lanta /說不是這樣,喬! 發生的事情是一個事件正在表單的重載構造函數中被啟動,並且不知何故這個事件總是被觸發(在點擊查找按鈕之后)。 我正在看到的消息,它取代了按鈕事件處理程序中的所有內容,發生在processBarcode()調用的方法中,該方法由processBarcode1()調用,該方法由barcodeScanner_BarcodeScan1()調用,由barcodeScanner_BarcodeScan調用( ),這是在frmEntry的重載構造函數中設置的。 如果以前的程序員打算讓我瘋了,他就不可能做得更好。
我想有一個原因是“在那里”或“在這里”有太多的維護工作:因為有太多糟糕的破壞代碼而且因為制造這么亂的貓在它上划了一堆沙子然后走開了。
這段代碼充滿了“嗯?!?@#$%^?!?” 什么時候,奇怪的旋轉根本沒有評論,但有這樣的評論:
// Check connection
checkConnection();
問題可能是按鈕的Click
事件未正確訂閱。 如果沒有類似的線
this.btnFind.Click += new System.EventHandler(this.btnFind_Click);
在表單的Designer文件中,就是這樣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.