■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■ Band ■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
设 置数据条带退格宽度
this.ultraGrid1.DisplayLayout.Bands[1].Indentation = 100;
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■ Caption ■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
表 格标题(Caption)
this.ultraGrid1.DisplayLayout.CaptionVisible = DefaultableBoolean.True;
标题
ug.DisplayLayout.CaptionAppearance.TextHAlign = Infragistics.Win.HAlign.Left;
ug.DisplayLayout.CaptionAppearance.BackColor = Color.LightSteelBlue;
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■ Head ■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
控 制标题行的位置
// RepeatOnBreak, FixedOnTop, OncePerRowIsland, OncePerGroupedRowIsland
e.Layout.Override.HeaderPlacement = HeaderPlacement.OncePerGroupedRowIsland;
e.Layout.Bands[0].Override.HeaderPlacement = HeaderPlacement.FixedOnTop;
标题换行展示
this.ultraGrid1.DisplayLayout.Override.WrapHeaderText = true;
Header 置顶不动
设置displaylayout中的stationarymargins
标题行样式
this.ultraGrid1.DisplayLayout.Override.AllowColSizing = AllowColSizing.Free;
this.ultraGrid1.DisplayLayout.Bands[0].HeaderVisible = true;
this.ultraGrid1.DisplayLayout.Bands[1].HeaderVisible = true;
this.ultraGrid1.DisplayLayout.Bands[1].Header.Caption = "Orders";
this.ultraGrid1.DisplayLayout.Bands[0].Indentation = 0;
this.ultraGrid1.DisplayLayout.Bands[1].Indentation = 0;
this.ultraGrid1.DisplayLayout.RowConnectorStyle = RowConnectorStyle.None;
this.ultraGrid1.DisplayLayout.Bands[0].Header.Appearance.ThemedElementAlpha =
Alpha.Transparent;
this.ultraGrid1.DisplayLayout.Bands[0].Header.Appearance.BackColor =
SystemColors.ActiveCaption;
this.ultraGrid1.DisplayLayout.Bands[0].Header.Appearance.ForeColor =
SystemColors.ActiveCaptionText;
this.ultraGrid1.DisplayLayout.Bands[1].Header.Appearance.ThemedElementAlpha =
Alpha.Transparent;
this.ultraGrid1.DisplayLayout.Bands[1].Header.Appearance.BackColor = Color.Blue;
this.ultraGrid1.DisplayLayout.Bands[1].Header.Appearance.BackColor2 = Color.Red;
this.ultraGrid1.DisplayLayout.Bands[1].Header.Appearance.ForeColor = Color.White;
this.ultraGrid1.DisplayLayout.Bands[1].Header.Appearance.BackGradientStyle =
GradientStyle.Horizontal;
隐藏标题行
this.UltraGrid1.Text = "";
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■ Row ■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
行 选择方式
e.Layout.Override.SelectTypeRow = SelectType.Single;
e.DisplayLayout.Bands["Orders"].Override.SelectTypeRow = SelectType.Extended;
e.Layout.Override.CellClickAction = CellClickAction.RowSelect;
选择行样式
ug.DisplayLayout.Override.SelectedRowAppearance.BackColor = Color.SteelBlue;
交错行样式
this.ultraGrid1.DisplayLayout.Override.RowAlternateAppearance.BackColor = Color.Red;
激活行样式
this.ultraGrid1.DisplayLayout.Override.ActiveRowAppearance.BackColor = Color.Red;
ug.DisplayLayout.Override.ActiveRowAppearance.BackColor = Color.SteelBlue;
添加行操作提示
private void ultraGrid1_InitializeLayout(object sender, InitializeLayoutEventArgs e)
{
this.ultraGrid1.DisplayLayout.Bands[0].AutoPreviewEnabled = true;
}
private void ultraGrid1_InitializeRow(object sender, InitializeRowEventArgs e)
{
e.Row.Description = "Row Description";
}
private void ultraGrid1_AfterRowInsert(object sender, RowEventArgs e)
{
this.ultraGrid1.DisplayLayout.ActiveRow.Description =
"Data changed in this row will not be added to the database" +
" until you press the Update button.";
}
行渐变背景
UltraGridRow objRow = this.ultraGrid1.Rows[10];
this.ultraGrid1.ActiveRow = objRow;
this.ultraGrid1.Rows[10].Appearance.BackColor2 = Color.Blue;
this.ultraGrid1.Rows[10].Appearance.BackGradientStyle = GradientStyle.Circular;
修改特殊行的位置
新增行
this.ultraGrid1.DisplayLayout.Override.AllowAddNew = AllowAddNew.TemplateOnTop;
this.ultraGrid1.DisplayLayout.Override.SequenceFixedAddRow = 2;
过滤行
this.ultraGrid1.DisplayLayout.Override.AllowRowFiltering = DefaultableBoolean.True;
this.ultraGrid1.DisplayLayout.Override.FilterUIType = FilterUIType.FilterRow;
this.ultraGrid1.DisplayLayout.Override.SequenceFilterRow = 1;
统计行
this.ultraGrid1.DisplayLayout.Override.AllowRowSummaries = AllowRowSummaries.True;
this.ultraGrid1.DisplayLayout.Override.SummaryDisplayArea = SummaryDisplayAreas.Top;
this.ultraGrid1.DisplayLayout.Override.SequenceSummaryRow = 3;
行高 度调整
e.Layout.Override.DefaultRowHeight = 60;
e.Layout.Override.RowSizing = RowSizing.Free;
this.ultraGrid1.DisplayLayout.Override.RowSizing = RowSizing.Free;
行 布局(将列分组展示)
ultraGrid1.DisplayLayout.Bands[0].Groups.Add("Name");
ultraGrid1.DisplayLayout.Bands[0].Groups.Add("Address");
ultraGrid1.DisplayLayout.Bands[0].Groups.Add("Phone");
ultraGrid1.DisplayLayout.Bands[0].Columns["CompanyName"].Group =
ultraGrid1.DisplayLayout.Bands[0].Groups["Name"];
ultraGrid1.DisplayLayout.Bands[0].Columns["ContactName"].Group =
ultraGrid1.DisplayLayout.Bands[0].Groups["Name"];
ultraGrid1.DisplayLayout.Bands[0].Columns["ContactTitle"].Group =
ultraGrid1.DisplayLayout.Bands[0].Groups["Name"];
ultraGrid1.DisplayLayout.Bands[0].Columns["CustomerID"].Group =
ultraGrid1.DisplayLayout.Bands[0].Groups["Name"];
ultraGrid1.DisplayLayout.Bands[0].Columns["Address"].Group =
ultraGrid1.DisplayLayout.Bands[0].Groups["Address"];
ultraGrid1.DisplayLayout.Bands[0].Columns["Country"].Group =
ultraGrid1.DisplayLayout.Bands[0].Groups["Address"];
ultraGrid1.DisplayLayout.Bands[0].Columns["City"].Group =
ultraGrid1.DisplayLayout.Bands[0].Groups["Address"];
ultraGrid1.DisplayLayout.Bands[0].Columns["Region"].Group =
ultraGrid1.DisplayLayout.Bands[0].Groups["Address"];
ultraGrid1.DisplayLayout.Bands[0].Columns["PostalCode"].Group =
ultraGrid1.DisplayLayout.Bands[0].Groups["Address"];
ultraGrid1.DisplayLayout.Bands[0].Columns["Phone"].Group =
ultraGrid1.DisplayLayout.Bands[0].Groups["Phone"];
ultraGrid1.DisplayLayout.Bands[0].Columns["Fax"].Group =
ultraGrid1.DisplayLayout.Bands[0].Groups["Phone"];
ultraGrid1.DisplayLayout.Bands[0].LevelCount = 2;
ultraGrid1.DisplayLayout.Bands[0].Columns["City"].Level = 1;
ultraGrid1.DisplayLayout.Bands[0].Columns["Country"].Level = 1;
ultraGrid1.DisplayLayout.Bands[0].Columns["PostalCode"].Level = 1;
ultraGrid1.DisplayLayout.Bands[0].Columns["Fax"].Level = 1;
冻结行
this.ultraGrid1.DisplayLayout.Override.FixedRowStyle = FixedRowStyle.Top;
this.ultraGrid1.Rows.FixedRows.Add(this.ultraGrid1.Rows[0]);
this.ultraGrid1.Rows[0].Fixed = true;
this.ultraGrid1.DisplayLayout.Override.FixedRowIndicator = FixedRowIndicator.Button;
FixedRowAppearance
FixedRowCellAppearance
FixedRowSelectorAppearance
统 计行
this.ultraGrid1.DisplayLayout.Override.AllowRowSummaries = AllowRowSummaries.True;
this.ultraGrid1.DisplayLayout.Override.SummaryDisplayArea =
SummaryDisplayAreas.GroupByRowsFooter | SummaryDisplayAreas.TopFixed;
------------------------------------------------------
this.ultraGrid1.DisplayLayout.Bands[0].Summaries.Add(
SummaryType.Minimum,
null,
this.ultraGrid1.DisplayLayout.Bands[0].Columns["Country"],
SummaryPosition.Left,
null
);
this.ultraGrid1.DisplayLayout.Bands[0].Summaries[0].SummaryPosition =
SummaryPosition.Center;
this.ultraGrid1.DisplayLayout.Bands[0].SummaryFooterCaption = "My Sums";
行首显示行号(行选择器)
e.Layout.Override.RowSelectors = DefaultableBoolean.True;
e.Layout.Override.RowSelectorNumberStyle = RowSelectorNumberStyle.VisibleIndex;
e.Layout.Override.RowSelectorWidth = 30;
选中行
this.ultraGrid1.Rows[i].Selected = true;
激活行
this.ultraGrid1.Rows[i].Activate();
this.ultraGrid1.ActiveRow = this.ultraGrid1.Rows[5];
this.ultraGrid1.DisplayLayout.Override.ActiveRowAppearance.BackColor = Color.Aqua;
this.ultraGrid1.ActiveCell = this.ultraGrid1.ActiveRow.Cells["CompanyName"];
遍历行
// 定位到首行
UltraGridRow aRow = this.ultraGrid1.GetRow(ChildRow.First);
// 搜索后继行
if(aRow.HasNextSibling())
{
UltraGridRow NextRow = aRow.GetSibling(SiblingRow.Next);
MessageBox.Show("Has Siblings");
}
// 搜索子行
if(aRow.HasChild())
{
UltraGridRow childRow = aRow.GetChild(Infragistics.Win.UltraWinGrid.ChildRow.First);
MessageBox.Show("Has a Child");
}
判断总行数
this.ultraGrid1.Rows.Count
特殊行外观设置
this.ultraGrid1.DisplayLayout.Override.SpecialRowSeparator =
SpecialRowSeparator.FixedRows;
this.ultraGrid1.DisplayLayout.Override.SpecialRowSeparatorHeight = 25;
this.ultraGrid1.DisplayLayout.Override.BorderStyleSpecialRowSeparator =
UIElementBorderStyle.Dashed;
隐藏行分隔线
e.Layout.Reset();
e.Layout.Override.CellAppearance.BorderAlpha = Alpha.Transparent;
e.Layout.Override.RowAppearance.BorderColor = Color.White;
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■ Column ■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
UltraGrid 内置支持的列编辑类型
Default 缺省类型
Edit 文本框
EditButton 按钮文本框
CheckBox 复选框
TriStateCheckBox 三态复选框
DropDown 组合框(可编辑)
DropDownList 下拉框(只选)
DropDownValidate 组合框(只可输入列表中的数据)
Button 按钮。点击时触发 ClickCellButton 事件
DropDownCalendar 下拉日历控件
Date 日期输入、下拉日历组合控件。可设置 MinValue 和 MaxValue,并对
输入进行掩码校验
DateWithoutDropDown 日期输入
DateWithSpin 类似Date控件,但用spin按钮取代了下拉日历控件
DateTime 日期时间输入控件
DateTimeWithoutDropDown 日期时间输入控件,但取消了下拉按钮
DateTimeWithSpin 日期时间输入控件,使用spin按钮替代下拉按钮
Color 色彩选择
Currency 金额,可修改 MaskInput 属性定制mask
CurrencyNonNegative 金额,不允许负数
CurrencyPositive 金额,只允许正数
Double double。可用 NumberFormatInfo 设置掩码,用 MinValue MaxValue
限制范围
DoubleWithSpin double + spin
DoubleNonNegative double 非负
DoubleNonNegativeWithSpin double 非负 spin
DoublePositive double 正数
DoublePositiveWithSpin double 正数 spin
Font 字体选择框
Image 图像展示(EmbeddableImageRenderer)
ImageWithShadow 图像,阴影效果
Integer 整数
IntegerWithSpin 整数,spin
IntegerPositive 整数,正数
IntegerPositiveWithSpin 整数,正数,spin
IntegerNonNegative 整数,非负
IntegerNonNegativeWithSpin 整数,非负,spin
Time 时间(可用MaskInput 设置掩码,用 Minimum 和 maximum 设置范围
)
TimeWithSpin 时间,spin
TimeZone 时区
URL URL(FormattedLinkEditor)
FormattedText 带格式的文本(FormattedLinkEditor)
设 置列编辑类型示例
button
this.ultraGrid1.DisplayLayout.Bands[0].Columns[0].Style = ColumnStyle.Button;
checkbox
this.ultraGrid1.DisplayLayout.Bands[0].Columns.Add("CheckBoxColumn");
this.ultraGrid1.DisplayLayout.Bands[0].Columns["CheckBoxColumn"].DataType = typeof
(bool);
this.ultraGrid1.DisplayLayout.Bands[0].Columns["CheckBoxColumn"].Style =
ColumnStyle.CheckBox;
dropdownlist
this.ultraGrid1.DisplayLayout.ValueLists.Add("List1");
this.ultraGrid1.DisplayLayout.ValueLists["List1"].ValueListItems.Add(1, "One");
this.ultraGrid1.DisplayLayout.ValueLists["List1"].ValueListItems.Add(2, "Two");
this.ultraGrid1.DisplayLayout.ValueLists["List1"].ValueListItems.Add(3, "Three");
this.ultraGrid1.DisplayLayout.ValueLists["List1"].DisplayStyle =
ValueListDisplayStyle.DisplayText;
this.ultraGrid1.DisplayLayout.Bands[0].Columns[2].Style = ColumnStyle.DropDownList;
this.ultraGrid1.DisplayLayout.Bands[0].Columns[2].ValueList =
this.ultraGrid1.DisplayLayout.ValueLists["List1"];
手工设置单元格编辑控件
EmbeddableEditorBase editor = null;
DefaultEditorOwnerSettings editorSettings = new DefaultEditorOwnerSettings( );
---------------------------------------
EditorWithText
editorSettings.DataType = typeof( string );
editor = new EditorWithText( new DefaultEditorOwner( editorSettings ) );
ColorPickerEditor
editorSettings.DataType = typeof( Color );
editor = new ColorPickerEditor( new DefaultEditorOwner( editorSettings ) );
FontNameEditor
valueList = new ValueList( );
editorSettings.DataType = typeof( string );
for ( int i = 0; i < System.Drawing.FontFamily.Families.Length; i++ )
valueList.ValueListItems.Add( System.Drawing.FontFamily.Families[i].Name );
editorSettings.ValueList = valueList;
editor = new FontNameEditor( new DefaultEditorOwner( editorSettings ) );
---------------------------------------
EditorWithMarsk (Currency)
editorSettings.DataType = typeof( decimal );
editor = new EditorWithMask( new DefaultEditorOwner( editorSettings ) );
editorSettings.MaskInput = "$ -nn,nnn,nnn.nn";
EditorWithMask (double)
editorSettings.DataType = typeof( double );
editorSettings.MaskInput = "-nnnnnnnn.nnnn";
editor = new EditorWithMask( new DefaultEditorOwner( editorSettings ) );
EditorWithMask(integers)
editorSettings.DataType = typeof( int );
editor = new EditorWithMask( new DefaultEditorOwner( editorSettings ) );
editorSettings.MaskInput = "-nnnnnnnn";
EditorWithMask(IPv4)
editorSettings.DataType = typeof( string );
editor = new EditorWithMask( new DefaultEditorOwner( editorSettings ) );
editorSettings.MaskInput = "nnn//.nnn//.nnn//.nnn";
EditorWithMask(phone numbers)
editorSettings.DataType = typeof( string );
editor = new EditorWithMask( new DefaultEditorOwner( editorSettings ) );
editorSettings.MaskInput = "(###) ###-####";
EditorWithMask (hh:mms:ss tt)
editorSettings.DataType = typeof( DateTime );
editorSettings.MaskInput = "hh:mm:ss tt";
editor = new EditorWithMask( new DefaultEditorOwner( editorSettings ) );
---------------------------------------
EditorWithCombo (Yes No dropdownlist)
editorSettings.DataType = typeof( bool );
valueList = new ValueList( );
valueList.ValueListItems.Add( true, "Yes" );
valueList.ValueListItems.Add( false, "No" );
editorSettings.ValueList = valueList;
editor = new EditorWithCombo( new DefaultEditorOwner( editorSettings ) );
EditorWithCombo (using ValueList)
valueList = new ValueList( );
valueList.ValueListItems.Add( 0, "Zero" );
valueList.ValueListItems.Add( 1, "One" );
valueList.ValueListItems.Add( 2, "Two" );
valueList.ValueListItems.Add( 3, "Three" );
valueList.ValueListItems.Add( 4, "Four" );
valueList.ValueListItems.Add( 5, "Five" );
editorSettings.ValueList = valueList;
editorSettings.DataType = typeof( int );
editor = new EditorWithCombo( new DefaultEditorOwner( editorSettings ) );
EditorWithCombo (using UltraDropDown)
// UltraDropDown : IValueList
UltraDropDown dropDown = new UltraDropDown();
dropDown.Visible = false;
dropDown.DataSource = new Record[]{
new Record("Cust 1"),
new Record("Cust 2"),
new Record("Cust 3"),
new Record("Cust 4")
};
dropDown.ValueMember = "ID"; // Cell values of this column are used as data.
dropDown.DisplayMember = "Data"; // Cell values of this column are dispalyed in the
cells.
dropDown.DisplayLayout.Override.CellAppearance.BackColor = Color.LightYellow;
dropDown.DisplayLayout.Override.CellAppearance.BackColor2 = Color.Yellow;
dropDown.DisplayLayout.Override.CellAppearance.BackGradientStyle =
GradientStyle.ForwardDiagonal;
this.Controls.Add(dropDown);
//
editorSettings.ValueList = dropDown;
editorSettings.DataType = typeof( int );
editor = new EditorWithCombo( new DefaultEditorOwner( editorSettings ) );
---------------------------------------
OptionSetEditor
editorSettings.DataType = typeof( bool );
valueList = new ValueList( );
valueList.ValueListItems.Add( true, "Yes" );
valueList.ValueListItems.Add( false, "No" );
editorSettings.ValueList = valueList;
editor = new OptionSetEditor( new DefaultEditorOwner( editorSettings ) );
---------------------------------------
CheckEditor
editorSettings.DataType = typeof( bool );
editor = new CheckEditor( new DefaultEditorOwner( editorSettings ) );
CheckEditor (ThreeState)
editorSettings.DataType = typeof( bool );
editor = new CheckEditor( new DefaultEditorOwner( editorSettings ) );
((CheckEditor)editor).ThreeState = true;
---------------------------------------
DateTimeEditor
editorSettings.DataType = typeof( DateTime );
editorSettings.MaskInput = "mm/dd/yyyy";
editor = new DateTimeEditor( new DefaultEditorOwner( editorSettings ) );
DateTimeEditor (mm/dd/yy hh:mm:ss)
editorSettings.DataType = typeof( DateTime );
editorSettings.MaskInput = "mm/dd/yy hh:mm:ss";
editor = new DateTimeEditor( new DefaultEditorOwner( editorSettings ) );
---------------------------------------
ProgressBarEditor
editorSettings.DataType = typeof( int );
editor = new Infragistics.Win.UltraWinProgressBar.ProgressBarEditor( new
DefaultEditorOwner( editorSettings ) );
设置 FieldValue 列的控件
private void ultraGrid2_InitializeRow(object sender,
Infragistics.Win.UltraWinGrid.InitializeRowEventArgs e)
{
string fieldType = e.Row.Cells["FieldType"].Text;
EmbeddableEditorBase editor = ...
e.Row.Cells[ "FieldValue" ].Editor = editor;
}
列只读
e.Layout.Override.Rows["xxx"].CellActivation = CellActivation.NoEdit;
隐藏列
this.ultraGrid1.DisplayLayout.Bands[0].Columns[0].Hidden = true;
冻结列
this.ultraGrid1.DisplayLayout.UseFixedHeaders = true;
this.ultraGrid1.DisplayLayout.Bands[0].Columns[0].Header.Fixed = true;
this.ultraGrid1.DisplayLayout.Bands[0].Columns[0].Header.FixedHeaderIndicator =
FixedHeaderIndicator.None;
this.ultraGrid1.DisplayLayout.Override.FixedHeaderAppearance.BackColor =
Color.LightYellow;
this.ultraGrid1.DisplayLayout.Override.FixedCellAppearance.BackColor = Color.LightYellow;
this.ultraGrid1.DisplayLayout.Override.FixedCellSeparatorColor = Color.Red;
展示列分隔线
this.ultraGrid1.DisplayLayout.Override.CellAppearance.BorderColor = Color.Red;
列允许拖动和切换
this.ultraGrid1.DisplayLayout.Override.AllowColMoving = AllowColMoving.WithinBand;
this.ultraGrid1.DisplayLayout.Override.AllowColSwapping = AllowColSwapping.WithinBand;
列宽调整
e.Layout.AutoFitStyle = AutoFitStyle.ExtendLastColumn;
e.Layout.Override.AllowColSizing = AllowColSizing.Free;
this.ultraGrid1.DisplayLayout.Override.ColumnAutoSizeMode =
ColumnAutoSizeMode.VisibleRows;
this.ultraGrid1.DisplayLayout.Bands[1].Override.ColumnAutoSizeMode =
ColumnAutoSizeMode.AllRowsInBand;
this.ultraGrid1.Rows[0].PerformAutoSize( );
遍历列
grid.Layout.Bands[0].Columns.FromKey("Key")
foreach ( UltraGridColumn column in e.Layout.Bands[0].Columns )
column.Width = 100;
判断某列是否重复
public static bool CheckIfSame(UltraGrid ug, string colname)
{
for(int i = 0; i < ug.Rows.Count; i++)
{
for(int j = i+1; j < ug.Rows.Count; j++)
if(ug.Rows[i].Cells[colname].Text == ug.Rows[j].Cells[colname].Text &&
ug.Rows[i].Cells[colname].Text != "")
return true;
}
return false;
}
添加非绑 定列
this.ultraGrid1.DisplayLayout.Bands[0].Columns.Add("CalculatedColumn", "Calculated
Value");
获取子数据条带个数
private int GetNumberofChildBands(Infragistics.Win.UltraWinGrid.UltraGridBand aBand)
{
int GetNumberofChildBands = 0;
foreach(UltraGridColumn aCol in aBand.Columns)
{
if(aCol.IsChaptered)
GetNumberofChildBands = GetNumberofChildBands + 1;
}
return GetNumberofChildBands;
}
不同值可以给以不同的颜色。
Properties-> DisplayLayout->bands->0-XXX->Columns->从弹出窗口中,选择一个列-
>ValueBaseAppearance-> 添加Conditions,即可。