C# 按钮单击()事件在windows桌面应用程序中触发两次

C# 按钮单击()事件在windows桌面应用程序中触发两次,c#,events,desktop-application,buttonclick,C#,Events,Desktop Application,Buttonclick,我正在创建一个表单,其中提供了如下搜索选项 我在一个MDI表单应用程序中工作 我的代码是: private void btnSearch_Click(object sender, EventArgs e) { string query = null; if (txtBillNo.Enabled && txtBillNo.Text.Trim().Length != 0) { query = "Select BillNo,PartyNam

我正在创建一个表单,其中提供了如下搜索选项

我在一个MDI表单应用程序中工作

我的代码是:

 private void btnSearch_Click(object sender, EventArgs e)
 {

    string query = null;
    if (txtBillNo.Enabled && txtBillNo.Text.Trim().Length != 0)
    {
        query = "Select BillNo,PartyName,City,State,FORMAT(BillDt,'dd-mm-yyyy')as Dt from BillMaster where BillNo=" + Convert.ToInt32(txtBillNo.Text.Trim());
        FillGrid(query);
    }
    else if (txtName.Enabled && txtName.Text.Trim().Length != 0)
    {
            query = "Select BillNo,PartyName,City,State,FORMAT(BillDt,'dd-mm-yyyy')as Dt from BillMaster where UCASE(PartyName) like '" + txtName.Text.Trim().ToUpper() + "'";
            FillGrid(query);
    }

    else
    {
        MessageBox.Show("Enter Value First");

        if (rdbName.Enabled)
        {
            txtName.Focus();

        }
        else if (rdbBillNo.Enabled)
        {
           txtBillNo.Focus();

        }

    }                 

}
这些条件用于检查文本框是否保留。如果保留为空,则我将给出一条消息,用户必须输入值。但是当我运行程序时,它会提示两次,然后我调试了程序,发现
Click
事件被调用了两次

我应该如何解决这个问题。

请提供帮助。

在Visual Studio中打开CallStack,找出调试时哪个函数调用Click事件


Debug->Windows->callstack

在WPF中,在
FillGrid(query)


在win窗体中,删除并不注册btnSearch。如果是WPF项目,请单击Load()

,确保没有在XAML和项目的C代码中注册单击处理程序。我也有同样的问题,正是由于这个原因。

我认为重复的事件会被覆盖,而不是添加。单击事件在没有说明其已处理的情况下工作。我认为这可能是双重注册的点击事件或其他调用从FillGrid。唯一的方法是检查调用堆栈。您是否注册了btnSearch。单击多个事件?加载应用程序时是否调用btnSearch\u Click方法?可能您通过Desiner和代码注册了该事件?先生,我已在我的
load()
事件中注册了该事件,但不是在设计时注册的@我不知道我只在@DavutGürbüzI表单的
Load()
中注册了一次btnSearch_Click(),我在我的按钮中没有找到
Handled
。\u Click()@Mustafa Ekici