單擊“開始”按鈕時,我實作了處理 excel 檔案的表單。事件點擊開始按鈕:
private void btnImport_Click(object sender, EventArgs e)
{
showFormSelectLanguage();
if (CheckSheetFile() == true) {
using (WaitingForm frm = new WaitingForm(handleExcel))
{
frm.ShowDialog(this);
}
var dialogMessage = new DialogMessage();
dialogMessage.ShowDialog(this);
} else
{
ShowDialogNotFoundSheet();
}
}
選擇語言的 showFormSelectLanguage 方法顯示對話框:
private void showFormSelectLanguage()
{
var formSelectLanguage = new FormSelectLanguage();
formSelectLanguage.ShowDialog(this);
}
存在用于檢查表 excel 的 ShowDialogNotFoundSheet 函式:
private void ShowDialogNotFoundSheet()
{
var dialogNotFoundSheet = new DialogNotFoundSheet();
dialogNotFoundSheet.setTextContent("Not found sheet");
dialogNotFoundSheet.ShowDialog(this);
}
事件在選擇語言表單中單擊確認選擇語言按鈕:
private void btnConfirmLanguage_Click(object sender, EventArgs e)
{
//close dialog
this.Close();
}
事件單擊關閉按鈕以關閉 DialogNotFoundSheet 表單:
private void btnCloseDialogNotFoundSheet_Click(object sender, EventArgs e)
{
this.Close();
}
CheckSheetFile 方法:
private bool CheckSheetFile()
{
var isCorrectFile = false;
try
{
xlWorkBook = xlApp.Workbooks.Open(txtFilePath.Text, System.IO.FileMode.Open, System.IO.FileAccess.Read);
var xlWorkBook1 = xlWorkBook.Sheets["SheetName"];
isCorrectFile = true;
}
catch (Exception e)
{
return false;
}
return isCorrectFile;
}
問題: 當我在 DialogNotFoundSheet 表單上單擊關閉按鈕時。然后 FormSelectLanguage 從仍然顯示。它重復。如何解決?預計2個表格可以關閉 謝謝!
更新:所有參考 btnImport_Click:

用戶界面:

uj5u.com熱心網友回復:
我不完全知道你做了什么btnImport_Click,但如果你的目的是一次禁用按鈕的功能并在另一個時間啟用它,實際上你不必注冊或取消注冊點擊事件,你可以只需設定按鈕的Enabled屬性。
//btnImport.Click = btnImport_Click;
btnImport.Enabled = true;
//btnImport.Click -= btnImport_Click;
btnImport.Enabled = false;
我對這個回圈的原因的猜測是你已經呼叫 = btnImport_Click了很多次,但-= btnImport_Click從來沒有(或更少)運行。
例如,如果您這樣做:
btnImport.Click = btnImport_Click;
btnImport.Click = btnImport_Click;
每次btnImport點擊,btnImport_Click都會被呼叫兩次。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/493266.html
上一篇:如何更改禁用按鈕的前景色
