zoukankan      html  css  js  c++  java
  • UltraWinGrid常用技巧

    1 委托
    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);
    2 判断
    e.Cell.Column.Key == "字段名"
    3 判断某列是否重复
    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;
       }
    4 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));
    5 选中一行
    this.ultraGrid1.Rows[i].Activate();
    this.ultraGrid1.Rows[i].Selected = true;
    6 新增一行,并将新行设为当前行
    第一种:
    Infragistics.Win.UltraWinGrid.UltraGridRow row = UltraGrid1.Rows.TemplateAddRow;
    UltraGrid1.ActiveRow = row;
    第二种
    Infragistics.Win.UltraWinGrid.UltraGridRow row = UltraGrid1.Rows.Band.AddNew();
    UltraGrid1.ActiveRow = row;
    ­
    7 接受UltraGrid中编辑的值
    UltraGrid1.UpdateData();
    8 UltraGrid 删除选中的行
                 if (ug_list.ActiveRow != null)
                 {
                     if (MessageBox.Show("确定要删除选定行吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes)
                     {
                         ug_list.DeleteSelectedRows(true);
                     }
                 }
    ­
    ­
    9。添加Column
    Start\Basic Settings\Data Schema\Manually Define a Schema\添加Column,命名用数据库中的字段名。
    10。添加Column中文名称
    Band and Column Settings\Band [0](手动添加Column后)\Columns\选择列\Header\修改Caption属性
    11。整个表的属性在Basic Settings或职能按钮中修改;单列的属性在Band中修改。
    12。Basic Settings中Data Schema用于设置数据列;Presets用于调整样式;Picker用于定义一些选项属性。
    5。绑定数据
    this.ultraGrid1.DataSource = myDataSet.Tables[0];
    数据列也可以在DataTable中设定,Column[0].ColumnName或Column[0].Caption
    13。Header换行
    智能按钮/Wrap Header Text 设为true,默认为不换行的
    14。排序:Picker/Filtring/Allow
    15。分组:Picker/OutLook GroupBy/Active
    16。编辑:Picker/Update
    17。多行表头:Column Arrangement Designer/Add Group/Add Level/把相应的列拖到组下面,
    18。隐藏列:Column Arrangement Designer/Show Hide
    19。单列不可编辑:Band[0]/Column/AllowEdit
    20。单击单元格选择状态:Band[0]/Column/CellClickAction
    21。绑定控件:Band[0]/Column/EditorControl
    22。单元格合并:Band[0]/Column/MergedCell。。。
    23。定住不滚动列:Picker/Fixed Header
    24。增加行:
         this.ultraGrid1.Rows.Band.AddNew();
         this.ultraGrid1.Rows[this.ultraGrid1.Rows.Count - 1].Cells["REC_ID"].Value = CommomFun.GetID();
    25。删除行:
       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");
                         }
                     }
    ­
    26 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;
       }
    27 UltraGrid 删除选中的行
    this.ultraGrid1.DeleteSelectedRows(false);
    28 委托
    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);
    29 格子的属性
       e.Cell.Column.Key   :字段名
       e.Cell.Column.Header.Caption   :字段标题名
       e.Cell.column.Band.Key :Band(表)的名称;
    30 判断某列是否重复
       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;
       }
    31 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));
    32 选中一行
    this.ultraGrid1.Rows[i].Activate();
           this.ultraGrid1.Rows[i].Selected = true;
    33 空行
         是否显示空行this.UltraGrid1.DisplayLayout.EmptyRowSettings.ShowEmptyRows = true;
         空行样式
         EmptyRowStyle style = (EmptyRowStyle)this.ultraComboEditorStyle.Value;
         this.UltraGrid1.DisplayLayout.EmptyRowSettings.Style = style;
    34.保存属性设置
       this.gridOne.DisplayLayout.Save(objLayout1,Infragistics.Win.UltraWinGrid.PropertyCategories.All);
    35 重置属性设置
       this.gridOne.DisplayLayout.Load(this.m_objFancyLayout, Infragistics.Win.UltraWinGrid.PropertyCategories.All);
    ­
    36.不同行样式
       this.gridRowProperties.DisplayLayout.Override.RowAlternateAppearance.BackColor = Color.Cyan;
       this.gridRowProperties.DisplayLayout.Override.RowAlternateAppearance.ForeColor = Color.DarkBlue;
    37.下拉框UltraDropDown
       this.UltraDropDown1.ValueMember = "ProductID";
       this.UltraDropDown1.DisplayMember = "Name";
       this.ultraGrid1.DisplayLayout
  • 相关阅读:
    揆首:以极客的思维做云诺
    [置顶] iOS学习笔记47——图片异步加载之EGOImageLoading
    wxWidgets初学者导引(3)——wxWidgets应用程序初体验(PDF版及附件下载)
    Win7 下用 VS2015 编译最新 openssl(1.0.2j)包含32、64位debug和release版本的dll、lib(8个版本)
    十问华为战略营销总裁徐文伟
    Debug与Release有时候确实不一致
    COM实践经验
    [置顶] (游戏编程-04)JAVA版雷电(奇迹冬瓜)
    第23章 COM和ActiveX(COM可以实现跨进程跨机器的函数调用)
    用Delphi即时判断当前的网络的连接方式
  • 原文地址:https://www.cnblogs.com/sherry/p/1300877.html
Copyright © 2011-2022 走看看