[英]Button_Click() Event fires twice in windows desktop application
我正在創建一個表單,其中提供了這樣的搜索選項
我在 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
事件被調用了兩次。
我應該怎么做才能解決這個問題。
請幫忙。
在WPF中,您必須在FillGrid(query)
之后將FillGrid(query)
設置為True
在win表單中,刪除並且不要在Load()中注冊btnSearch.Click
在Visual Studio中打開CallStack並找出調試時調用Click事件的函數。
Debug->Windows->Call Stack
如果是WPF項目,請確保沒有在XAML中注冊的單擊處理程序和項目的C#代碼。 我有同樣的問題,這是由於這個原因。
我認為可能需要更改方法簽名以使用RoutedEventArgs e
然后,在方法主體的末尾,您可以將e.Handled 設置為 True
private void btnSearch_Click(object sender, RoutedEventArgs e)
{
// do some stuff
e.Handled = True
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.