2011-08-25 63 views
2

我有一個UltraWinGrid及其背後的數據集。在數據表的Row_Changing事件處理程序中,我會對數據進行一些檢查,並在發生異常時發出異常。我想在我的應用程序中顯示此異常的消息。但是,UltraGrid似乎捕獲異常並顯示它自己的消息框,但有一個例外。如何防止顯示消息框,並在應用程序中捕獲該錯誤?如何處理Ultrawingrid(winforms)底層數據集的異常

private static void Row_Changing(object sender, DataRowChangeEventArgs e) 
{ 
    if(<some logic to test the row values>) 
     throw new Exception("you can't do that"); 
} 

回答

2

我解決了這個問題,但我想我會創建這個問題(因爲我已經輸入了它)。

你需要處理的UltraGrid的錯誤事件,並設置e.Cancel爲true,以防止該對話框中,從彈出:

public Form1() 
{ 
    ... 

    this.ultraGrid1.Error += new Infragistics.Win.UltraWinGrid.ErrorEventHandler(ultraGrid1_Error); 
} 

void ultraGrid1_Error(object sender, Infragistics.Win.UltraWinGrid.ErrorEventArgs e) 
{ 
    //< deal with the error here> 
    // set Cancel to true to prevent the dialog box from showing. 
    e.Cancel = true; 
}