【问题标题】:Button_Click() fires twice if placed in the group box如果将 Button_Click() 放置在组框中,则会触发两次
【发布时间】:2013-04-23 16:15:44
【问题描述】:

我是桌面应用程序开发的新手。

我有一个搜索按钮,通过它从数据库记录中填充网格。

首先我把按钮放在分组框中,调试程序,发现click事件被触发了两次。然后我在文本框中放置了相同的按钮,发现该事件只被触发一次。

我的Button_Click() 事件包含以下代码:

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();  
        }               
    }                 
}

事件处理程序被绑定在 Form_Load() 事件中,使用:

btnSearch.Click+=new EventHandler(btnSearch_Click);

将按钮放入组框后,我应该怎么做才能触发点击事件。
请帮忙。

【问题讨论】:

  • 您确定没有订阅 Designer.CS 文件中发生的事件吗?
  • 这也是我的想法@MatthewWatson....
  • 是的,先生,我确信这一点,因为在 [设计] 表单中,当我双击搜索按钮时。它让我可以在 `private void btnSearch_Click_1(object sender, EventArgs e)` 块中编写代码。 @MatthewWatson
  • @RiyazKalva 很公平——虽然我会看看 Designer.cs 以防万一......
  • 我还检查了 Designer.cs 并没有发现没有为按钮分配事件处理程序。

标签: c# desktop-application buttonclick groupbox


【解决方案1】:

我认为您的btnSearch_Click 的内容无关紧要。我几乎可以肯定btnSearch.Click 被分配了两次。一旦进入您的Form_Load 并可能在其他地方,也许在您的代码隐藏文件中?

【讨论】:

  • 我还检查了 Designer.cs 并没有发现没有为按钮分配事件处理程序。 @马丁穆德
猜你喜欢
  • 2013-04-11
  • 1970-01-01
  • 2016-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-27
相关资源
最近更新 更多