NetAdvantage控件使用:UltraGrid
原文:http://www.cnblogs.com/strgvi/articles/779771.html
1。添加Column
Start"Basic Settings"Data Schema"Manually Define a Schema"添加Column,命名用数据库中的字段名。
2。添加Column中文名称
Band and Column Settings"Band [0](手动添加Column后)"Columns"选择列"Header"修改Caption属性
3。整个表的属性在Basic Settings或职能按钮中修改;单列的属性在Band中修改。
4。Basic Settings中Data Schema用于设置数据列;Presets用于调整样式;Picker用于定义一些选项属性。
5。绑定数据
this.ultraGrid1.DataSource = myDataSet.Tables[0];
数据列也可以在DataTable中设定,Column[0].ColumnName或Column[0].Caption
6。Header换行
智能按钮/Wrap Header Text 设为true,默认为不换行的
7。排序:Picker/Filtring/Allow
8。分组:Picker/OutLook GroupBy/Active
9。编辑:Picker/Update
10。多行表头:Column Arrangement Designer/Add Group/Add Level/把相应的列拖到组下面,
11。隐藏列:Column Arrangement Designer/Show Hide
12。单列不可编辑:Band[0]/Column/AllowEdit
13。单击单元格选择状态:Band[0]/Column/CellClickAction
14。绑定控件:Band[0]/Column/EditorControl
15。单元格合并:Band[0]/Column/MergedCell。。。
16。定住不滚动列:Picker/Fixed Header
17。增加行:
this.ultraGrid1.Rows.Band.AddNew();
this.ultraGrid1.Rows[this.ultraGrid1.Rows.Count - 1].Cells["REC_ID"].Value = CommomFun.GetID();
18。删除行:
if (this.ultraGrid1.Rows.Count <= 0)
{
MessageInfo.ShowMessage("m_system_client_0009");
return ;
}
#endregion
if (this.ultraGrid1.ActiveRow != null)
{
this.ultraGrid1.ActiveRow.Selected = true;
}
if (MessageInfo.ShowMessage("m_system_client_0003", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
bool blnDeleted = false;
for (int i = 0; i < this.ultraGrid1.Rows.Count; i++)
{
if (this.ultraGrid1.Rows[i].Selected || this.ultraGrid1.Rows[i].IsActiveRow)
{
if (this.ultraGrid1.Rows[i].Delete(false))
{
i--;
}
blnDeleted = true;
}
}
if (!blnDeleted)
{
MessageInfo.ShowMessage("m_system_client_0009");
}
}
1 UltraGrid风格设置函数
public static void ColorGrid(ref Infragistics.Win.UltraWinGrid.UltraGrid ug)
{
//标题
ug.DisplayLayout.CaptionAppearance.TextHAlign = Infragistics.Win.HAlign.Left;
ug.DisplayLayout.CaptionAppearance.BackColor = Color.LightSteelBlue;
//边框显示
ug.DisplayLayout.BorderStyle = Infragistics.Win.UIElementBorderStyle.Solid;
//背景色
ug.DisplayLayout.Appearance.BackColor = Color.White;
//默认颜色设置
ug.DisplayLayout.Override.HeaderAppearance.BackColor = Color.LightSteelBlue;//列
ug.DisplayLayout.Override.RowSelectorAppearance.BackColor = Color.LightSteelBlue;//行
//选中颜色设置
ug.DisplayLayout.Override.SelectedCellAppearance.BackColor = Color.SteelBlue;//选中单元格
ug.DisplayLayout.Override.SelectedRowAppearance.BackColor = Color.SteelBlue;//选中行
//ActiveRowx颜色设置
ug.DisplayLayout.Override.ActiveRowAppearance.BackColor = Color.SteelBlue;
}
2 UltraGrid 删除选中的行
this.ultraGrid1.DeleteSelectedRows(false);
3 委托
this.ultraGrid1.AfterCellUpdate -= new Infragistics.Win.UltraWinGrid.CellEventHandler(this.ultraGrid1_AfterCellUpdate);
this.ultraGrid1.Rows[0].Cells["字段名"].Value = "";
this.ultraGrid1.AfterCellUpdate += new Infragistics.Win.UltraWinGrid.CellEventHandler(this.ultraGrid1_AfterCellUpdate);
4 格子的属性
e.Cell.Column.Key :字段名
e.Cell.Column.Header.Caption :字段标题名
e.Cell.column.Band.Key :Band(表)的名称;
5 判断某列是否重复
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;
}
6 Enter切换,在form_load事件里写
this.ultraGrid1.KeyActionMappings.Add(new Infragistics.Win.UltraWinGrid.GridKeyActionMapping(System.Windows.Forms.Keys.Enter, Infragistics.Win.UltraWinGrid.UltraGridAction.NextCell, Infragistics.Win.UltraWinGrid.UltraGridState.IsCheckbox, Infragistics.Win.UltraWinGrid.UltraGridState.Cell, 0, 0));
7 选中一行
this.ultraGrid1.Rows[i].Activate();
this.ultraGrid1.Rows[i].Selected = true;
8 空行
8.1是否显示空行this.UltraGrid1.DisplayLayout.EmptyRowSettings.ShowEmptyRows = true;
8.2空行样式
EmptyRowStyle style = (EmptyRowStyle)this.ultraComboEditorStyle.Value;
this.UltraGrid1.DisplayLayout.EmptyRowSettings.Style = style;
9.保存属性设置
this.gridOne.DisplayLayout.Save(objLayout1,Infragistics.Win.UltraWinGrid.PropertyCategories.All);
重置属性设置
this.gridOne.DisplayLayout.Load(this.m_objFancyLayout, Infragistics.Win.UltraWinGrid.PropertyCategories.All);
10.不同行样式
this.gridRowProperties.DisplayLayout.Override.RowAlternateAppearance.BackColor = Color.Cyan;
this.gridRowProperties.DisplayLayout.Override.RowAlternateAppearance.ForeColor = Color.DarkBlue;
11.下拉框UltraDropDown
this.UltraDropDown1.ValueMember = "ProductID";
this.UltraDropDown1.DisplayMember = "Name";
this.ultraGrid1.DisplayLayout.Bands[0].Columns["ProductID"].ValueList = this.UltraDropDown1