DataGridView常見用法和FAQ彙總

長征3號發表於2017-10-18

 前段時間在專案中用到了WinForm,其中最複雜的控制元件當屬DataGridView了,特別喜歡它那高度的可配置性(提供了大量的屬性,方法和事件)、豐富的內建列型別,而且易於擴充套件,對效能問題也提供了良好的解決方案。

    不過最初看著它那數以百計的方法、屬性、事件,感到一陣眩暈,不知如何下手。幸運地是,很快我就找到了一個網站,windowsforms.net,這也是WinForm的官方站點,這裡有不少相關的文章,FAQ,以及不錯的論壇,這個論壇裡,你的問題很可能會是微軟的開發人員為你回答的,那些回答也很到位。

    在其中找到了關於DGV的FAQ,更好的是他們提供了DGV的文件和示例。該文件共有六章和一個附錄,詳細的解釋了DGV的結構,內建列/單元格型別,資料操作,主要特性和最佳實踐,最後提供了二十餘個FAQ問題。我就是根據該文件,一步步逐漸瞭解DGV的。實際上,該文件的很多內容來自MSDN,而且限於篇幅,有很多地方也不如MSDN詳細,所以最好是用本文件作綱要,結合MSDN來學習。

    也許,對於很多開發人員來說,最有用的是FAQ部分,因為開發過程中,可能沒有很多時間去全面瞭解DGV,而只是需要它的一個特定功能,這時建議先看看FAQ部分有沒有你想要的答案;如果要全面瞭解DGV,建議按照該文件的組織結構,去逐步瞭解它。

    現在網上全面介紹DGV的地方好像不太多,尤其是中文開發社群,大都是介紹DGV的某種特性或用法,所以我想把這個文件翻譯一下。翻譯過程中,感覺還是比較困難,雖然自己會時常看一些英文文章,但看懂和表達出來還是有很大不同,導致翻譯進度也比較慢,所以只翻譯了其中的四章和FAQ部分,剩下的兩章有時間再補充吧。

    另外,我也嘗試了文件中的絕大部分程式碼,並且用選單項來表示文件的章節結構,這樣在看某一章時,可以很快找到相關的演示程式碼。我把這些也一塊拿出來,大部分都是些很簡單的程式碼,很容易看懂。文件中用到的資料庫是Northwind,在執行程式前,請先將Settings.settings中的連線字串配置正確。

    下面是FAQ的主要內容:

    1、如何使指定的單元格不可編輯?
    
2、如何讓一個單元格不可用?
    
3、如何避免使用者將焦點設定到指定的單元格?
    
4、如何使所有單元格總是顯示編輯控制元件?
    
5、如何在單元格內同時顯示圖示和文字?
    
6、如何隱藏一列?
    
7、如何避免使用者對列排序?
    
8、如何針對多個列排序?
    
9、如何為編輯控制元件新增事件處理函式?
    
10、應在何時移除編輯控制元件的事件處理函式?
    
11、如何處理ComboBox列中ComboBox控制元件的SelectIndexChanged事件?
    
12、如何通過拖放調整行的順序?
    
13、如何調整最後一列的寬度使其佔據網格的剩餘客戶區?
    
14、如何讓TextBox型別的單元格支援換行?
    
15、如何使Image列不顯示任何影像(欄位值為null時)?
    
16、如何能夠在ComboBox型別的單元格中輸入資料?
    
17、如何在使用者編輯控制元件的時候(而不是在驗證時)就顯示錯誤圖示?
    
18、如何同時顯示繫結資料和非繫結資料?
    
19、如何顯示主從表?
    
20、如何在同一DataGridView中顯示主從表?
    
21、如何避免使用者對列排序?
    
22、如何在點選工具欄按鈕的時候將資料提交到資料庫?
    
23、如何在使用者刪除記錄時顯示確認對話方塊?

    如果在這個網站和MSDN都沒有找到想要的東西,可以去codeproject看看,那裡也有一些關於DGV的文章。

    下面是相關下載內容:
    微軟的文件和示例以及我翻譯的部分文件和演示程式碼    
    微軟的文件和示例原始下載

本文轉自一個程式設計師的自省部落格園部落格,原文連結:http://www.cnblogs.com/anderslly/archive/2006/12/07/dgvsummary.html,如需轉載請自行聯絡原作者。


相關文章