2012-08-17 26 views
1

在C#表單上,當用戶從工具菜單中選擇保存時,我需要運行一系列檢查。如果其中一項檢查失敗,則需要停止保存過程。下面是當前的代碼:C#中斷/停止ToolClick事件

private static void baseToolbarsManager_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs args) 
{ 
    if (args.Tool.Key == "SaveTool") 
    { 
      if (tbxJob == "") 
      { 
        MessageBox.Show("Error: No job was entered"); 
        //Stop the save event from happening here 
      } 
     } 
} 
+0

是否加入「迴歸」; messagebox之後的聲明修復你的問題? – 2012-08-17 17:17:36

+0

不,它不。 – 2012-08-17 17:33:49

回答

1

哪裏你保存方法得到的叫什麼?爲什麼不把if (tbxJob == "")支票添加到Save方法?或者可能讓它檢查是否取消保存操作的布爾值?

我不相信您可以在您發佈的方法中放入任何東西來取消操作,您必須在調用Save之前放置取消檢查,或者將其放入Save方法本身。

+0

即時通訊添加到現有的應用程序,我控制有限。我無法更改保存方法。我唯一的選擇是在實際的保存方法被調用之前捕獲它。 – 2012-08-17 17:38:36

+1

是否有BeforeToolClick事件具有帶Cancel屬性的事件參數? – Paccc 2012-08-17 17:43:07

1

如果我明白你需要阻止一個事件被調用。因此,一個解決辦法是繼承控制類和重寫OnToolClick()方法:

private override void OnToolClick(ToolClickEventArgs e){ 
    if (e.Tool.Key == "SaveTool"){ 
     if (tbxJob == "") 
      MessageBox.Show("Error: No job was entered"); 
      //Stop the save event from happening here 
     else 
      base.OnToolClick(e); 
    } 
}