[★] DataGridView 實際專案當中需要注意的問題 zt

asword發表於2007-08-02
DatagridView :[@more@]

一 :
將資料繫結到 DataGridView 控制元件非常簡單和直觀,在大多數情況下,只需設定 DataSource 屬性即可。
在繫結到包含多個列表或表的資料來源時,只需將 DataMember 屬性設定為指定要繫結的列表或表的字串即可。

二:資料來源的定義

任何實現 IList 介面的類,包括一維陣列。
任何實現 IListSource 介面的類,例如 DataTable 和 DataSet 類。
任何實現 IBindingList 介面的類,例如 BindingList 類。
任何實現 IBindingListView 介面的類,例如 BindingSource 類。

三:BindingSource 元件: 取代 DataSet 和 DataView 是喜還是優..

通常繫結到 BindingSource 元件,並將 BindingSource 元件繫結到其他資料來源或使用業務物件填充該元件。
BindingSource 元件為首選資料來源,因為該元件可以繫結到各種資料來源,並可以自動解決許多資料繫結問題實際專案當中通常要注意的屬性:

BindingSource 元件有兩個用途。首先,它提供一個將窗體上的控制元件繫結到資料的間接層。這是透過將 BindingSource 元件繫結到數 據源,然後將窗體上的控制元件繫結到 BindingSource 元件來完成的。與資料的所有進一步互動(包括導航、排序、篩選和更 新)都是通 過呼叫 BindingSource 元件來完成的。

使用 BindingSource 篩選資料
將 Filter 屬性設定為所需的表示式。
在下面的程式碼示例中,表示式就是在列名之後加上該列所需的值。
BindingSource1.Filter = "ContactTitle='Owner'"

用 BindingSource 進行資料排序
將 Sort 屬性設定為後面要跟有 ASC 或 DESC 的所需列名稱,以指示是按升序還是降序排序。
用逗號分隔多個列。
BindingSource1.Sort = "Country DESC, Address ASC";

===在基於文字的單元格中啟用換行
this.dataGridView1.DefaultCellStyle.WrapMode =
DataGridViewTriState.True;
===設定貨幣和日期值的格式
this.dataGridView1.Columns["UnitPrice"].DefaultCellStyle.Format = "c"; 貨幣
this.dataGridView1.Columns["ShipDate"].DefaultCellStyle.Format = "d"; 短日期
====
在實際專案當中 只需要注意這幾個 屬性 就可以了..
AllowUserToAddRows 指示是否向使用者顯示用於新增行的選項.
ColumnHeadersHeight 和 ColumnHeadersHeightSizeMode 配合使用..用於設定列的高度
RowHeadersVisible 指示是否顯示包含行標題的列
SelectionMode 指示如何選擇 DataGridView 的單元格
AllowUserToResizeRows 指示使用者是否可以調整行的大小
BackgroudColor DataGridView 的背景色
ReadOnly DataGridView 是否只讀
EditMode 表示確定單元格編輯啟動方式的模式
AutoSizeRowsMode 確定可見行的自動調整大小模式
AllowUserToDeleteRows 指示是否允許使用者從DaaGridView 刪除行
ColumnHeaDefaultCellStyle 預設的列標題樣式

繫結方式 :

1.自動生成列 2. 繫結列 [可見,只讀,凍結]

對某列 設定凍結之後. Frozen =True,以它為起點向左的列都會受影響
如 A B C D E 5 列 將 E 設定 Frozen =True A B C D 的 Frozen 屬性會自動設定為 True 無橫向捲軸..且優先 ScrollBars
將 B 列設定為 凍結之後..A B 列不動.拖動橫向捲軸的時候,,C D E 移動.好像是 2層 ...

如果是自動生成列..我們無話可說..如果是繫結列.如果你繫結欄位 是 A 表.查詢是B 表. 無結果.....
繫結列的時候,仍然會有自動建立的列..取消自動建立列的方法:
從程式角度 : 我們一般查詢 都是用 * ..改成具體的列 就避免了多於的列自動生成..

然後獲取當前行的某一列的值 : DataGridView1.CurrentRow.Cells[i].Value.ToString();

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/82387/viewspace-930833/,如需轉載,請註明出處,否則將追究法律責任。

相關文章