我正在创建一个表单,其中提供的搜索选项如this
我正在使用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
事件被调用了两次。
我该怎么做才能解决这个问题 请帮忙。
答案 0 :(得分:2)
在WPF中,您必须在FillGrid(query)
之后将e.Handled设置为True
在win表单中,删除并且不要在Load()
答案 1 :(得分:0)
在Visual Studio中打开CallStack,找出调试时调用Click事件的函数。
Debug->Windows->Call Stack
答案 2 :(得分:0)
如果是WPF项目,请确保您没有在XAML中注册的Click Handler和项目的C#代码。我有同样的问题,这是由于这个原因。