繁体   English   中英

为什么按钮的事件处理程序没有触发?

[英]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 . . .

什么可能阻止执行此代码?

UPDATE

根据Mike C的想法,我在button_close处理程序中添加了一个MessageBox。 当我点击它时,它会触发,但只有在其他代码首先运行之后 ; 在这种情况下,其他代码不会阻止Close_Click(最终)触发; 但是,使用“查找”按钮,它完全抢占了它......我看,当我单击它时,我从最后的“关闭”按钮看到消息,但是当我单击它时,我从未在“查找”按钮处理程序中看到任何消息。 ..

更新2

哦,我的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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM