原創|其它|編輯:郝浩|2012-09-13 15:49:44.000|閱讀 3065 次
概述:UltraWinGrid是NetAdvantage產品中WinForm控件集中的一個表格控件。UltraWinGrid功能很強大,包括:導入導出 Excel、數據過濾、列求和列求平均值等、綁定數據庫數據、排序、制作名片等各種功能。今天主要介紹UltraWinGrid的綁定數據、風格、屬性、事件四個常用功能。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
1. UltraWinGrid控件總覽
UltraWinGrid是NetAdvantage產品中WinForm控件集中的一個表格控件。UltraWinGrid功能很強大,包括:導入導出 Excel、數據過濾、列求和列求平均值等、綁定數據庫數據、排序、制作名片等各種功能。今天主要介紹UltraWinGrid的綁定數據、風格、屬性、事件四個常用功能。
2. 綁定數據
我們有多種方式為UltraWinGrid綁定數據,通過設計器創建:
拖入UltraWinGrid控件自動彈出Quick Start界面,選擇Create an UltraDataSource。。
a)DataBands可以看做是一個Table,DataColumns是Band的字段,也可以為Band0添加子表。
b)我們注意到下面有一個<Initialize the scheme from a DataSource>, UltraGrid提供了通過訪問Oracle、SqlServer、Access等數據庫的db文件初始化列名。
c)為了方便擴展和使用,我們也可以自己創建UltraDataSource
//創建DataSource
private Infragistics.Win.UltraWinDataSource.UltraDataSource ultraDataSource1;
//添加列
this.ultraDataSource1.Band.Columns.AddRange(object[] columns);
this.ultraDataSource1.Band.Columns.Add(string columnKey, Type DataType);
//創建一列
Infragistics.Win.UltraWinDataSource.UltraDataColumn ultraDataColumn10 = new Infragistics.Win.UltraWinDataSource.UltraDataColumn("Column 4");
//添加子表
Infragistics.Win.UltraWinDataSource.UltraDataBand ultraDataBand1 = new Infragistics.Win.UltraWinDataSource.UltraDataBand("Band 1");
ultraDataBand1.Columns.AddRange(new object[] {
ultraDataColumn1,
ultraDataColumn2,
ultraDataColumn3,
ultraDataColumn4,
ultraDataColumn5});
this.ultraDataSource1.Band.ChildBands.AddRange(new object[] {
ultraDataBand1});
//為Grid綁定DataSource
this.ultraGrid1.DataSource = this.ultraDataSource1;
//如果需要修改添加列的顯示方式,也需要對Grid添加一些東西
Infragistics.Win.UltraWinGrid.UltraGridBand ultraGridBand1 = new Infragistics.Win.UltraWinGrid.UltraGridBand("Band 0", -1);//創建響應的GridBind
Infragistics.Win.UltraWinGrid.UltraGridColumn ultraGridColumn18 = new Infragistics.Win.UltraWinGrid.UltraGridColumn("Column 0");....//創建GridColumn,可以修改對應列的屬性
Infragistics.Win.UltraWinGrid.UltraGridBand ultraGridBand2 = new Infragistics.Win.UltraWinGrid.UltraGridBand("Band 1", 0);//創建子表的GridBind
ultraGridBand1.Columns.AddRange(new object[] {...});//初始化GridBind的列
ultraGridBand2.Columns.AddRange(new object[] {...});
this.ultraGrid1.DisplayLayout.BandsSerializer.Add(ultraGridBand1);//添加到Grid上
this.ultraGrid1.DisplayLayout.BandsSerializer.Add(ultraGridBand2);
//添加數據
this.ultraDataSource1.Rows.Add(new object[] { 數據... });
DataSource與Grid綁定之后,所有對DataSource的添加刪除動作都會實時響應到Grid上。
3. 風格設計
NetAdvantage的Winform控件有統一的style控制,一個窗體工程可以通過StyleManger來加載.isl文件獲取整體的 風格。每個控件都有UseAppStyling(是否使用StyleManager加載的風格)和UseOsThemes(是否使用操作系統的風格)屬 性,這兩個屬性都設置成false,自己單獨為控件修改的顏色等風格設計才能顯示出來。
還有幾個常用的屬性:
this.ultraGrid1.DisplayLayout.CaptionVisible = Infragistics.Win.DefaultableBoolean.False;
this.ultraGrid1.DisplayLayout.Override.HeaderClickAction = Infragistics.Win.UltraWinGrid.HeaderClickAction.SortMulti;
this.ultraGrid1.DisplayLayout.AutoFitStyle = Infragistics.Win.UltraWinGrid.AutoFitStyle.ResizeAllColumns;
4. 屬性
所有的NetAdvantage的WinForm控件都包含一個Infragistics.Win.Appearance屬性,里面包括 Backcolor、AlphaLevel、Image、FontData等一些基本屬性。對于UltraWinGrid來說,對于單獨行、列、單元格都 有自己獨立的屬性可以設置
列屬性
ultraGridColumn1.CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;//列是否可編輯
ultraGridColumn1.Style = Infragistics.Win.UltraWinGrid.ColumnStyle.CheckBox;
行屬性
this.ultraGrid1.DisplayLayout.Override.RowSelectors = Infragistics.Win.DefaultableBoolean.False;
this.ultraGrid1.DisplayLayout.Override.RowAlternateAppearance中的屬性可以設置間隔行之間不同顯示風格
5. 事件
只列出幾個常用的事件
this.ultraGrid1.ClickCellButton += new Infragistics.Win.UltraWinGrid.CellEventHandler(ultraGrid1_ClickCellButton);
this.ultraGrid1.ClickCell += new Infragistics.Win.UltraWinGrid.ClickCellEventHandler(ultraGrid1_ClickCell);
this.ultraGrid1.DoubleClickCell += new Infragistics.Win.UltraWinGrid.DoubleClickCellEventHandler(ultraGrid1_DoubleClickCell);
this.ultraGrid1.DoubleClickRow += new Infragistics.Win.UltraWinGrid.DoubleClickRowEventHandler(ultraGrid1_DoubleClickRow);
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:nabila的專欄