2012-02-27 95 views
1

是否有方法爲UltraWinGrid的每列定義特定的CellChange事件處理程序?Infragistics UltraWinGrid列級CellChange事件處理程序

我重構一個Infragistics的UltraWinGrid一個CellChange事件處理程序看起來像這樣:

Select Case e.Cell.Column.Key 

Case "Name" 
' handle cell change event for Name cell with a big ugly blob of code 

Case "Title" 
' handle cell change event for Title cell with a big ugly blob of code 

' ... etc ... 

End Select 

我希望能夠創建事件處理火災時的特定列的單元格發生變化,但我不知道這是否可能。如果不是這樣,我只會重構select-case以手動調用特定於列的事件處理程序。

Select Case e.Cell.Column.Key 

Case "Name" 
CellChanged_Name(sender, e) 

Case "Title" 
CellChanged_Title(sender, e)  

' ... etc ... 

End Select 

有人可以告訴我是否可以創建事件處理程序,當特定列的單元格更改時觸發?或者我最好隻手動調用列特定的功能?

回答

0

CellChange事件處理程序的事件處理程序將始終b e在任何單元格發生變化時調用,並且網格無法爲特定列創建事件處理程序。如果您希望可以聯繫Infragistics,並建議他們通過論壇或提交支持請求來添加此功能。有關於此的每個鏈接在獲取幫助頁上: http://www.infragistics.com/support/get-help.aspx

+0

接受,因爲它回答了我的主要問題是是否可以在列級別添加事件處理程序。 我不會聯繫Infragistics的支持,我正在重構舊的代碼。如果我正在編寫新代碼,則不會使用任何Infragistics產品。 – 2012-02-28 21:23:17

+0

@Walter Stabosz,我想聽聽你對你爲什麼不使用Infragistics產品的任何反饋。您可以直接發郵件給我[email protected]。 – alhalama 2012-02-29 19:29:33

+0

我對Infragistics最大的抱怨是你的文檔很糟糕。在http://community.infragistics.com/forums/p/56337/291136.aspx上查看我的帖子。錯誤的文檔意味着調試頭痛。這意味着我必須等待3天才能獲得Infragistics支持的響應或購買高級支持合同。我把我的公司轉到了jQuery(在我們的web項目中),因爲它是免費的,並且具有遠遠優越的文檔和社區支持,並且它通常更好。 – 2012-02-29 19:46:05

2

請注意,我正在從C#中隨時翻譯它,所以可能會出現錯誤。
您需要在您共同CellChanged事件

dictionary(e.Cell.Column.Key).Invoke(sender, e) 

引用LINQ的命名空間,然後使用語法就像在你的Form_Load這個

或其他地方

Dim dictionary As New Dictionary(Of String, Infragistics.Win.UltraWinGrid.CellEventHandler) 
dictionary.Add("Name", CellChanged_Name) 
dictionary.Add("Title", CellChanged_Title) 
dictionary.Add("....", ....) 

作爲參考請看這Replacement for big switch?

+0

這不是一個壞主意。我會試一試,讓你知道它是怎麼回事。 – 2012-02-27 17:03:29

+1

我建議在創建代表網格和單元格或單元格的代理時進行額外的更改,而不是使用現有的代表進行事件參數。如果您使用發件人參數,則可能無法將其轉換爲每個處理程序。 – alhalama 2012-02-27 21:10:27

+0

是的,這將是一個非常有用的改進,對不起,但我不是很流利的VB。假設這被排除在外,作爲我們的讀者的練習:-) – Steve 2012-02-27 21:24:59