程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> OutlookGrid:以Outlook樣式分組和排列數據項(5)

OutlookGrid:以Outlook樣式分組和排列數據項(5)

編輯:關於C語言

缺少的和未經測試的功能

因為DataGridVIEw基控件包含眾多方法、事件和屬性,它們完全被OutlookGrid繼承,我沒有努力用OutlookGrid的實現來測試它們全部。這意味著:一旦您開始為其它超出本文敘述的功能特性而使用OutlookGrid,您將很有可能遇到bug或功能缺失。因為我已遇到其中的一些(問題),我將在下面列出我所知道的問題:

很不幸,OutlookGrid不支持嵌套分組。這就是下一步要做的。

改變網格的顯示風格可能導致分組不能被100%正確地繪出。

通常,Group(分組)的文本顏色被設置為黑色並且不能改變,您將需要改變OutlookGridRow類中的Paint()方法。

我沒有用VirtualMode(虛模式)測試網格。(譯注:VirtualMode屬性在 .Net Framework 2.0 版中是新增的。虛擬模式是為使用大型數據存儲區而設計的。當 VirtualMode 屬性為 true 時,可以創建一個包含大量行和列的 DataGridView,然後處理 CellValueNeeded 事件來填充單元格。虛擬模式要求實現基礎數據緩存,以便基於用戶的操作來處理 DataGridVIEw 單元格的填充、編輯和刪除。詳見MSDN。)說實話,我不知道那個概念是如何工作的,因此我懷疑:一旦您開啟了VirtualMode(譯注:即將其設置為true)數據項還能被正確顯示。

綁定數據源不是直接綁定到DataGridVIEw基控件。因此,數據綁定只為顯示數據項工作。然而,一旦您編輯網格中的數據項,數據源將不會被更新。您將不得不自己動手實現更新。

這也意味著網格中的新數據項將不會自動被添加到數據源。這也將不得不用手工實現。

為Group的row重寫了缺省行,不是所有普通行觸發的事件分組的行都能觸發。比如,分組行重寫OnDoubleClick事件,以自動折疊或展開。不改變代碼該行為是不能被觸發的。

毫無疑問這裡還有一些其它問題,請向我報告它們,那麼我和其它開發者都將可以從中獲益。也許,我會投入更多時間開發這個控件的更多功能。

設計和可擴展性

在這個部分,我要描述這個控件如何實現的更多細節,特別面向可能要在該控件上做一些編碼的開發人員讀者。我嘗試用VS2005中某些東西弄成類似一個的UML圖,但是好吧…這個圖將必須做出來。

OutlookGrid

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved