zoukankan      html  css  js  c++  java
  • 玩转DevExpress.XtraGrid.view.gridview

    (一)双击展开,收缩字表
    Private Sub ExpandedChild(ByVal sender As DevExpress.XtraGrid.Views.Grid.GridView)
    '找出焦点行
    Dim VIntPage As Integer = sender.FocusedRowHandle
    If sender.GetMasterRowExpanded(VIntPage) Then
    sender.CollapseMasterRow(VIntPage)
    Else
    sender.ExpandMasterRow(VIntPage)
    End If
    End Sub

    (二)单击选中某行的checkbox
    Private Sub GridChecked(ByVal sender As DevExpress.XtraGrid.Views.Grid.GridView, ByVal TableIndex As Integer)
    Try
    '找出焦点行做在的内存表中所在的行
    Dim rowPlace As DataRow = CType(sender, GridView).GetDataRow(CType(sender, GridView).FocusedRowHandle)
    'SELECTED为checkbox的字段名(1:选中,0:不选中)
    If rowPlace("SELECTED") = 1 Then
    rowPlace("SELECTED") = 0
    Else
    For Each VRow As DataRow In objLowerPriceQueryOut.Info.Tables(TableIndex).Rows
    VRow!SELECTED = 0
    Next
    rowPlace("SELECTED") = 1
    End If
    Catch ex As Exception
    End Try
    End Sub

    (三)设置gridview只读属性options->optionsbehavior->editable为false
    设置单击选中该列,而不是单元格options->optionsSelction
    ->EnableApperanceFocusedCell为false

    (四)将gridview中某一字段设置为RepositoryItemHyperLinkEdit,要触发该链接的事件,可以在In_place Editor Repository中触发click 事件。但是,触发该事件的同时,gridview中的OptionBehavior->Editable必须设置为true。

    (五)在gridview中绑定内存表,要改变焦点行某一字段的值
    '根据gridview的焦点行获取内存表的行数
    Dim rowGoMain As DataRow = gridview.GetDataRow(sender.FocusedRowHandle)
    '修改该行的值
    rowGoMain("字段名") = "aa"

    (六)对DataSet进行查询:
    ds.Tables[0].DefaultView.RowFilter = "查询条件";

    (七) 设置展开第一行的字表
    gridview.SetMasterRowExpanded(1, True)

    (八)设置gridview某一列汇总:选中该列,在SummaryItem设置相应属性即可。DisplayFormat为显示的格式,FieldName为需要汇总的字段……

    (九)设置gridview单元格自动换行:在单元格中一个Memo控件,columnedit->new->MemoEdit,gridview中设置optionsview->rowautoheight=true

     

    Options        
    OptionsBehavior       视图的行为选项
      AllowIncrementalSearch     允许用户通过输入想得到的列值来定位行
      AllowPartialRedrawOnScrolling     允许视图在垂直滚动中局部刷新
      AutoExpandAllGroups     自动展开视图中的所有组
      AutoPopulateColumns     当视图中没有某些数据源中的字段时,在视图中自动创建这些列
      AutoSelectAllInEditor     在一个单元格编辑中,是否允许通过Enter或F2来选择该单元格的所有内容
      AutoUpdateTotalSummary     当列值发生改变时,自动更新汇总摘要数据
      CacheValuesOnRowUpdating     缓冲将被存入数据源的数据(当一行数据要存入到数据源时,Grid可以将它的值存入到一个内部的缓冲器中。这样,万一那行数据在存入时被数据源的检查机制清空了,还可以恢复)
      Editable     允许对单元格进行编辑
      EditorShowMode     设置鼠标激活单元格编辑器的模式
      FocusLeaveOnTab     如果在Grid中TAB键被禁止,是否在按下TAB键时将焦点移到下一个控件
      ImmediateUpdateRowPosition     因为排序、分组和过滤设置造成行的数据被修改时,是否立即更新一行的位置
      KeepFocusedRowOnUpdate     当后台的数据记录变化时,保持焦点行的焦点
      KeepGroupExpandedOnSorting     当数据进行排序时,保持行的扩展状态
      SmartVertScrollBar     设置是否能滚动视图到第一行和最后一行
    OptionsCustomization       访问视图的用户化操作
      AllowChangeBandParent     允许用户能够移动带子在父母中?
      AllowChangeColumnParent     允许用户能够在带子中移动列
      AllowColumnMoving     允许用户通过拖动列头来移动列
      AllowColumnResizing     允许用户修改列宽
      AllowFilter     允许用户对数据进行过滤操作
      AllowGroup     允许用户对数据进行分组操作
      AllowRowSizing     允许用户修改行高
      AllowSort     允许用户对数据进行排序操作
      ShowBandsInCustomizationForm     在用户窗体中显示带子(BandedGridView和AdvBandedGridView专有属性)
    OptionsDetail       对视图的主要明细操作
      AllowExpandEmptyDetails     没有明细数据时,主行能够展开
      AllowOnlyOneMasterRowExpanded     同时只允许展开一个主行
      AllowZoomDetails     允许视图的明细扩大到整个控件的区域
      AutoZoomDetail     当相应的主行展开时,自动把视图的明细扩大到控件的区域
      EnableDetailToolTip     允许明细上的提示出现
      EnableMasterViewMode     允许显示视图的明细
      ShowDetailTabs     显不Tab的明细
      SmartDetailExpand     当详细视图扩展时,是否自动进行滚动,使该详细视图的所有行都显示出来
      SmartDetailExpandButtonMode     设置"主—明细"扩展按钮的风格
      SmartDetailHeight     (保留属性)
    OptionsFilter       视图的过滤操作
      AllowColumnMRUFilterList     在列过滤器下拉打开时,显示最近用于过滤的项目(MRU=the most recently used)
      AllowFilterEditor     允许使用过滤编辑器(用于复杂过滤标准的设置)
      AllowMRUFilterList     允许使用最近使用项目的过滤列表
      ColumnFilterPopupMaxRecordsCount     设置过滤的下拉菜单中所能显示的最大记录数
      ColumnFilterPopupRowCount     列过滤器下拉时能弹出的最大项目数量
      MRUColumnFilterListCount     是否存放最近使用过的视图列的过滤项目
      MRUFilterListCount     是否存放最近使用过的视图的过滤条件
      MRUFilterListPopupCount     最近使用过的过滤列表中能显示的项目数
      ShowAllTableValuesInFilterPopup     是否在下拉列表中显示所有记录的(唯一的)值,或者满足过滤标准的值
      UseNewCustomFilterDialog     高级用户用定制的过滤器对话框
    OptionsHint       视图的提示操作
      ShowBandHeaderHints     显示表格带头被截去的内容(BandedGridView和AdvBandedGridView专有属性)
      ShowCellHints     显示单元格被截去的内容
      ShowColumnHeaderHints     显示列头被截去的内容
    OptionsLayout       视图的布局操作
      Columns    
        AddNewColumns   存在于当前控件,但不存在于布局的列,当它恢复时将被保留?
        RemoveOldColumns   恢复时存在于布局中的,但不存在于当前控件的列,将被丢弃或者加入到控件中
        StoreAllOptions   当布局进行存储或恢得时,控件所有的列/带(除了外观设置外)的设置都将被存储或恢得
        StoreAppearance   存储或恢复外观设置
        StoreLayout   能否存储或恢复布局
      LayoutVersions     布局的版本
      StoreAllOptions     存储或恢复控件的所有设置(除外观设置或样式条件外)
      StoreAppearance     存储或恢复控件的外观设置
      StoreDataSettings     存储或恢复控件的分组、排序、过滤设置和摘要(汇总)
      StoreVisualOptions     存储或恢复控件视觉选项(布局)
    OptionsMenu       选项菜单
      EnableColumnMenu     允许列头上的菜单
      EnableFooterMenu     允许页脚上的菜单
      EnableGroupPanelMenu     允许分组面板上的菜单
    OptionsNavigation       导航选项
      AutoFocusNewRow     增加新记录时自动将焦点移动相应的行
      AutoMoveRowFocus     当前焦点在一行的第一个或最后一个单元格时,使用水平导航键可以将焦点移到下一行或上一行
      EnterMoveNextColumn     回车键能移动单元格的焦点
      UseAdvHorzNavigation     使用高级水平导航器(AdvBandedGridView专有属性)
      UseAdvVertNavigation     使用高级垂直导航器(AdvBandedGridView专有属性)
      UseTabKey     使用TAB/SHIFT+TAB移动焦点
    OptionsPrint       打印选项
      AutoWidth     根据纸的宽度自动设置视图的列宽
      EnableAppearanceEvenRow     允许偶数行应用界面设置(GridViewPrintAppearances)
      EnableAppearanceOddRow     允许奇数行应用界面设置(GridViewPrintAppearances)
      ExpandAllDetails     打印时所有主行都展开
      ExpandAllGroups     打印时所有分组的行都展开
      PrintBandHeader     打印带的头
      PrintDetails     打印明细
      PrintFilterInfo     打印过滤面板
      PrintFooter     打印页脚
      PrintGroupFooter     打印分组的页脚
      PrintHeader     打印列头
      PrintHorzLines     打印水平的网络线
      PrintPreview     打印预览的部分
      PrintVertLines     打印垂直的网络线
      UsePrintStyles     打印正在使用的界面
    OptionsSelection       选择选项
      EnableAppearanceFocusedCell     允许获得焦点的单格使用外观
      EnableAppearanceFocusedRow     允许获得焦点的行使用外观
      EnableAppearanceHideSelection     允许在控件失去焦点时,外观设置应用到选择的行上
      InvertSelection     设置焦点的风格应用到获得焦点的单元格,还是获得焦点的那一行的所有单元格
      MuiltiSelect     允许多选行
      MuiltiSelectMode     多选模式(多选行或多选单元格)(GridView和BandedGridView专有属性)
      UseIndicatorForSelection     当处理多选模式时,能否使用行指示面板来进行行的选择
    OptionsView       视图选项
      AllowCellMerge     允许相同值的相邻单元格合并(BandedGridView专有属性)
      AutoCalcPreviewLineCount     根据预览的内容自动计算出文本行的数量
      ColumnAutoWidth     自动调整列宽,使所有列的宽度和视图的宽度匹配
      EnableAppearanceEvenRow     允许偶数行应用界面设置(GridViewPrintAppearances)
      EnableAppearanceOddRow     允许奇数行应用界面设置(GridViewPrintAppearances)
      GroupDramMode     分组行的显示模式
      HeaderFilterButtonShowMode     列头上的过滤按钮的显示模式
      NewItemRowPosition     设置新项目行的位置
      RowAutoHeight     每一行自动根据单元格的内容调整高度(GridView专用属性)
      ShowAutoFilterRow     显示自动过滤行
      ShowBands     显示带的面板(BandedGridView和AdvBandedGridView专有属性)
      ShowChildrenInGroupPanel     视图的分组面板是否担当一个新加入的分组面板
      ShowColumnHeaders     显示列头
      ShowDetailButtons     在主行上显示"主—明细"的扩展按钮
      ShowFilterPanelMode     显示过滤面板
      ShowFooter     显示视图的页脚
      ShowGroupedColumns     显示分组列(GridView专用属性)
      ShowGroupPanel     显示分组面板
      ShowHorzLines     显示水平网格线
      ShowIndicator     显示行指示器面板
      ShowPreview     显示预览部分
      ShowPreviewLines     显示预览线
      ShowvertLines     显示垂直网格线
    设计        
    (Name)       常规属性
    GenerateMember       常规属性
    Modifiers       常规属性
    数据        
    (ApplicationSettings)       常规属性
      (PropertyBinding)     常规属性
    Tag       常规属性
    外观        
    Appearance       外观设置
      BandPanel、BandPanelBackground、ColumnFilterButton、ColumnFilterButtonActive、DetailTip、Empty、EvenRow、FilterCloseButton、FilterPanel、FixedLine、FocusedCell、FocusedRow、FooterPanel、GroupButton、GroupFooter、GroupPanel、GroupRow、HeaderPanel、HeaderPanelBackground、HideSelectionRow、Horzline、OddRow、Preview、Row、RowSeparator、SelectedRow、TopNewRow、VertLine     带的面板、带面板的背景、列过滤按钮、正在使用的列过滤按钮……
        BackColor   背景色
        BackColor2   最后一种背景色(背景是梯度色时)
        BorderColor   边框色
        Font   字体
          Name 字体名称
          Size 字体大小
          Unit 字体设置的单位
          Bold 是否加粗
          GdiCharSet 倾斜字符设置
          Italic 是否斜体
          Strikeout 删除线
          Underline 是否加下划线
        ForeColor   前景色
        GradientMode   背景梯度模式
        Image   背景图片
        Options   界面选项
          UseBackColor 使用显示对象的背景色
          UseBorderColor 使用显示对象的边框色
          UseFont 使用显示对象的字体
          UseForeColor 使用显示对象的前景色
          UseImage 使用显示对象的背景图片
          UseTextOptions 使用显示对象的文本选项(见TextOptions属性)
        TextOptions   文本选项
          Halighment 文本的水平对齐方式
          HotkeyPrefix 热键前缀的是否显示
          Trimming 文本的整理方式
          Valignment 文本的垂直对齐方式
          WordWrap 是否换行
    AppearancePrint       打印时的外观设置
      BandPanel、EvenRow、FilterPanel、FooterPanel、GroupFooter、GroupRow、HeaderPanel、Lines、OddRow、Preview、Row     带的面板、偶数行、过滤面板……
        BackColor   背景色
        BackColor2   最后一种背景色(背景是梯度色时)
        BorderColor   边框色
        Font   字体
          Name 字体名称
          Size 字体大小
          Unit 字体设置的单位
          Bold 是否加粗
          GdiCharSet 倾斜字符设置
          Italic 是否斜体
          Strikeout 删除线
          Underline 是否加下划线
        ForeColor   前景色
        GradientMode   背景梯度模式
        Image   背景图片
        Options   界面选项
          UseBackColor 使用显示对象的背景色
          UseBorderColor 使用显示对象的边框色
          UseFont 使用显示对象的字体
          UseForeColor 使用显示对象的前景色
          UseImage 使用显示对象的背景图片
          UseTextOptions 使用显示对象的文本选项(见TextOptions属性)
        TextOptions   文本选项
          Halighment 文本的水平对齐方式
          HotkeyPrefix 热键前缀的是否显示
          Trimming 文本的整理方式
          Valignment 文本的垂直对齐方式
          WordWrap 是否换行
    BandPanelRowHeight       带面板的行高(BandedGridView和AdvBandedGridView专有属性)
    BorderStyle       当前视图的边框样式
    ChildGridLevelName       在加入分组面板中显示的正在分组状态子级别的名字?
    ColumnPanelRowHeight       列头高度
    DetailHeight       详细视图的视图高度
    DetailTabHeaderLocation       设置明细部分中明细分页的显示位置
    FixedLineWidth       固定面板分隔器的宽度
    FocusRectStyle       焦点框的样式
    FooterPanelHeight       视图页脚的高度
    GroupFooterShowMode       分组页脚的显示模式
    GroupFormat       分组行的格式
    GroupPanelText       分组面板中的文本
    GroupRowHeight       分组行的高度
    Images       图片集
    IndicatorWidth       行指示面板的宽度
    LevelIndent       分组行和相邻分组级别的缩进
    MinBandPanelRowCount       行中最小带头面板的高度(BandedGridView和AdvBandedGridView专有属性)
    NewItemRowText       新项目行中显示的文本
    PaintStyleName       当前视图的着色样式的名字
    PreviewFieldName       预览部分中要显示值的域名
    PreviewIndent       预览文本的水平偏移量
    PreviewLineCount       预览部分的文本的行数
    RowHeight       数据行中单元格的高度
    RowSepartatorHeight       行间距
    ShowButtonMode       编辑器按钮的显示模式
    VertScrollTipFieldName       垂直滚动条上的提示
    ViewCaption       视图的标题
    行为        
    ActiveFilterEnabled       允许使用过滤功能
    BestFitMaxRowCount       数据被处理后最合适列的数据行数
    DefaultRelationIndex       处理时省缺使用的明细级别
    HorzScrollStep       水平滚动条的位移量
    HorzScrollVisibilly       水平滚动条的出现设置
    ScrollStyle       滚动条的样式
    SynchronizeClones       是否克隆视图(通过视图克隆,使外观和数据的表现设置同步)
    VertScrollVisibility       显示垂直滚动条

      

    第三方控件使用大全

    【张杰章开发过程中整理】

    一、              ComboBoxEdit

    1、 如何使其不可编辑

    TextEditStyle 设置为:DisableTextEditor

    2、 如何设置鼠标为手形

    Cursor 设置为:Hand

    二、              GridControl

    1、 如何解决单击记录整行选中的问题

    View->OptionsBehavior->EditorShowMode 设置为:Click

    2、 如何新增一条记录

    (1)gridView.AddNewRow()

    (2)、实现gridView_InitNewRow事件

    3、如何解决GridControl记录能获取而没有显示出来的问题

       gridView.populateColumns();

    4、如何让行只能选择而不能编辑(或编辑某一单元格)

       (1)View->OptionsBehavior->EditorShowMode 设置为:Click

       (2)View->OptionsBehavior->Editable 设置为:false

    5、如何禁用GridControl中单击列弹出右键菜单

       设置Run Design->OptionsMenu->EnableColumnMenu 设置为:false

    6、如何隐藏GridControlGroupPanel表头

       设置Run Design->OptionsView->ShowGroupPanel 设置为:false

    7、如何禁用GridControl中列头的过滤器

       过滤器如下图所示:

      

       设置 Run Design->OptionsCustomization->AllowFilter 设置为:false

    8、如何在查询得到0条记录时显示自定义的字符提示/显示

       如图所示:

      

    方法如下:

      //When no Records Are Being Displayed

            private void gridView1_CustomDrawEmptyForeground(object sender, CustomDrawEventArgs e)

            {

                //方法一(此方法为GridView设置了数据源绑定时,可用)

                ColumnView columnView = sender as ColumnView;

                BindingSource bindingSource = this.gridView1.DataSource as BindingSource;

                if(bindingSource.Count == 0)

                {

                    string str = "没有查询到你所想要的数据!";

                    Font f = new Font("宋体", 10, FontStyle.Bold);

                    Rectangle r = new Rectangle(e.Bounds.Top + 5, e.Bounds.Left + 5, e.Bounds.Right - 5, e.Bounds.Height - 5);

                    e.Graphics.DrawString(str, f, Brushes.Black, r);

                }

                //方法二(此方法为GridView没有设置数据源绑定时,使用,一般使用此种方法) 

                if (this._flag)

                {

                    if (this.gridView1.RowCount == 0)

                    {

                        string str = "没有查询到你所想要的数据!";

                        Font f = new Font("宋体", 10, FontStyle.Bold);

                        Rectangle r = new Rectangle(e.Bounds.Left + 5, e.Bounds.Top + 5, e.Bounds.Width - 5, e.Bounds.Height - 5);

                        e.Graphics.DrawString(str, f, Brushes.Black, r);

                    }

                }

       }

    9、如何显示水平滚动条?

       设置this.gridView.OptionsView.ColumnAutoWidth = false;

    10、如何定位到第一条数据/记录?

       设置 this.gridView.MoveFirst()

    11、如何定位到下一条数据/记录?

       设置 this.gridView.MoveNext()

    12、如何定位到最后一条数据/记录?

       设置 this.gridView.MoveLast()

    13设置成一次选择一行,并且不能被编辑

            this.gridView1.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.RowFocus;

              this.gridView1.OptionsBehavior.Editable = false;

         this.gridView1.OptionsSelection.EnableAppearanceFocusedCell = false;

    14、如何显示行号?

       this.gridView1.IndicatorWidth = 40;

           //显示行的序号

            private void gridView1_CustomDrawRowIndicator(object sender, RowIndicatorCustomDrawEventArgs e)

            {

                if (e.Info.IsRowIndicator && e.RowHandle>=0)

                {

                    e.Info.DisplayText = (e.RowHandle + 1).ToString();

                }

       }

    15、如何让各列头禁止移动?

        设置gridView1.OptionsCustomization.AllowColumnMoving = false;

    16、如何让各列头禁止排序?

        设置gridView1.OptionsCustomization.AllowSort = false;

    17、如何禁止各列头改变列宽?

        设置gridView1.OptionsCustomization.AllowColumnResizing = false;

    18

     

    19

     

    20

     

    21

     

    22

     

    23

     

    24

     

    25

     

    26

     

     

     

    三、navBarControl

    1、如何在每一个navBarGroup里添加自己想要的控件

       设置GroupStyle: ControlContainer

    2、如何设置navBarGroup有滚动条

       设置SkinExplorerBarViewScrollStyle:ScrollBar

    3、 如休把navBarGroup设置成如下样式

    如图所示:

       设置navBarGroupPaintStyleName属性为: SkinNavigationPane

     

    四、toolTipController

    效果图如下:

    1、如何设置显示的时间长短

       设置this.toolTipController1.AutoPopDelay = 2000;

    2如何在屏幕上显示如上图所示的效果

               ToolTipControllerShowEventArgs args = this.toolTipController1.CreateShowArgs();

               this.toolTipController1.SetToolTip(this.sbtnYes, "请选择一条记录!");

               this.toolTipController1.SetTitle(this.sbtnYes, "提示");

               this.toolTipController1.SetToolTipIconType(this.sbtnYes, DevExpress.Utils.ToolTipIconType.Exclamation);

               this.toolTipController1.ShowBeak = true;

               this.toolTipController1.ShowShadow = true;

               this.toolTipController1.Rounded = true;

               this.toolTipController1.ShowHint("请选择一条记录!", "提示");                   

               args.ToolTip = "请选择一条记录!";

       args.Title = "提示";     

    3如何设置边框的颜色

       this.toolTipController1.Appearance.BorderColor = Color.Red;

    五、TextEdit

    1、如何设置TextEdit为多行,可拉伸

       设置TextEdit的Propertity->AutoHeight为:False

     

    六、LayoutControl

            1、如何设置LayoutItem为隐藏

               设置LayoutItem.Visibility = Never

          

    七、TreeList

    1、如何隐藏TreeList的列头

       设置TreeListrOptionsViewShowColumns属性为:False

    2、如何

          

    八、PictureEdit

    1、如何禁止PictureEdit的右键菜单?

    设置PictureEditProperties->ShowMenu为:false

    九、TreeList

    1、 如何让TreeList的每个结点高亮显示?

    效果如下:

    代码如下:

    private void treeList1_CustomDrawNodeCell(object sender, DevExpress.XtraTreeList.CustomDrawNodeCellEventArgs e)

            {

                TreeList node = sender as TreeList;

                if (e.Node == node.FocusedNode)

                {

                    e.Graphics.FillRectangle(SystemBrushes.Window, e.Bounds);

                    Rectangle r = new Rectangle(e.EditViewInfo.ContentRect.Left,

                                                e.EditViewInfo.ContentRect.Top,

                                                Convert.ToInt32(e.Graphics.MeasureString(e.CellText,                                                                treeList1.Font).Width + 1),

                                                Convert.ToInt32(e.Graphics.MeasureString(e.CellText,treeList1.Font).Height));

     

                    e.Graphics.FillRectangle(SystemBrushes.Highlight, r);

                    e.Graphics.DrawString(e.CellText, treeList1.Font, SystemBrushes.HighlightText, r);

     

                    e.Handled = true;

                }

            }

    //============================================================================

    //===============================以下内容为收集===============================

    //============================================================================

    一、改变grid的样式。

    DevExpress.XtraGrid.Design.XAppearances xapp;

    xapp=new DevExpress.XtraGrid.Design.XAppearances(System.Environment.GetFolderPath(System.Environment.SpecialFolder.System) + "\\DevExpress.XtraGrid.Appearances.xml ");

    xapp.LoadScheme(样式名字, gridControl1.MainView);

    二、选择单元设置和取所选的值

         gridView1.OptionsSelection.MultiSelect = ceMultiSelect.Checked; //多行选择

         gridView1.OptionsSelection.MultiSelectMode= GridMultiSelectMode.CellSelect;

         gridView1.OptionsSelection.MultiSelectMode= GridMultiSelectMode. RowSelect; //

    三、gridview的控制

    ///<取当前选中的值>

     

            string GetSelectedRows(GridView view) {

                string ret = "";

                int rowIndex = -1;

                if(view.OptionsSelection.MultiSelectMode == GridMultiSelectMode.RowSelect) {

                    foreach(int i in gridView1.GetSelectedRows()) {

                        DataRow row = gridView1.GetDataRow(i);

                        if(ret != "") ret += "\r\n";

                        ret += string.Format("Company Name: {0} (#{1})", row["CompanyName"], i);

                    }

                }

                else {

                    foreach(GridCell cell in view.GetSelectedCells()) {

                        if(rowIndex != cell.RowHandle) {

                            if(ret != "") ret += "\r\n";

                            ret += string.Format("Row: #{0}", cell.RowHandle);

                        }

                        ret += "\r\n    " + view.GetRowCellDisplayText(cell.RowHandle, cell.Column);

                        rowIndex = cell.RowHandle;

                    }

                }

                return ret;

            }

     

    ///<设置选中的颜色>//半透明的效果

     private void icbTranslucentColors_CheckedChanged(object sender, System.EventArgs e) {

                if(icbTranslucentColors.Checked) {

                    gridView1.Appearance.SelectedRow.BackColor = Color.FromArgb(30, 0, 0, 240);

                    gridView1.Appearance.FocusedRow.BackColor = Color.FromArgb(60, 0, 0, 240);

                }

                else {

                    gridView1.Appearance.SelectedRow.Reset();

                    gridView1.Appearance.FocusedRow.Reset();

                }

            }

     

    ///<自动添加一行>

    gridView1.OptionsView.NewItemRowPosition = NewItemRowPosition.Bottom//Top/None;

    ///<设置gridView的按钮>

        gridView1.ShowButtonMode = ShowButtonModeEnum.。。。。。。

          gridView1.OptionsBehavior.Editable = chEdit.Checked; //设置按钮是否可用

    ///向选中的空间输入字符串

     SendKeys.Send(fsfds);

    ///控件焦点

    gridControl1.Focus();

    四、cardView的设置

    ///是否现实快捷按钮CustomizeButton

    cardView1.OptionsView.ShowQuickCustomizeButton=true/false;

    ///设置CustomizeButton的能否排序和过滤

    foreach(GridColumn col in cardView1.Columns)

                {   col.OptionsColumn.AllowSort}

    foreach(GridColumn col in cardView1.Columns)

                  { col.OptionsFilter.AllowFilter}

    ///card的头上的ico显示

    cardView1.LayoutChanged();

    ///card的头上的标题改变显示

    cardView1.CardCaptionFormat =””;

    ///cardview显示的单个记录的折叠按钮

    cardView1.OptionsView.ShowCardExpandButton=true;

    ///

    cardView1.MaximumCardColumns =iSize

    cardView1.MaximumCardRows = val;

    cardView1.OptionsBehavior.AutoHorzWidth

     

    ///多选

    cardView1.OptionsSelection.MultiSelect = ceMultiSelect.Checked;

    foreach(int i in cardView1.GetSelectedRows()) {

                    DataRow row = cardView1.GetDataRow(i);

                    if(ret != "") ret += "\r\n";

                    ret += string.Format("{0} / {1} : {2:$#,0.00}", row["Trademark"], row["Model"], row["Price"]);

                }///查看选择中的记录

    CellMerging(单元格合并的效果)

    ///

    CellMerging(单元格合并的效果)

    gridView1.OptionsView.AllowCellMerge = ceMerging.Checked;

    Fixed Bands(bandedGridView)

    ///两边固定

    gridBand3 的一列的Fixed属性改成 Right,Left,None

    ///固定与非固定列之间的距离用

    bandedGridView2.FixedLineWidth = (int)numFixedLineWidth.Value;

    ///设置列的颜色

    l          打开Run Designer 选中Columns 选中要改变的列 里面有AppearanceCell (设置列的外观)和 AppearanceHeader(设置表格头的外观)

    l          或者选中该列查看“属性”里面也有这两个属性。

    ///统计 gridView bandedGridView通用)

    分组统计和全部统计:

    全部统计:在最下面显示统计的结果。

            Run Designer->Total Summary //->General 设置显示        

                                        //->Columns 对特定列来设置统计

     

    汇总结果是否显示:可以通过gridControl的view的ShowFooter属性来设置表格下面的汇总结果

    分组统计:

    以上就是“分组”的 显示在每个分组下面来显示汇总结果。

     

    通过bandedGridView2.GroupFooterShowMode= GroupFooterShowMode.。。。。设置分组的显示模式。

    ///GridView设置菜单

             #region Grid events

             private void gridView1_ShowGridMenu(object sender, DevExpress.XtraGrid.Views.Grid.GridMenuEventArgs e) {

                  if(e.MenuType == DevExpress.XtraGrid.Views.Grid.GridMenuType.Column) {

                       DevExpress.XtraGrid.Menu.GridViewColumnMenu menu = e.Menu as DevExpress.XtraGrid.Menu.GridViewColumnMenu;

                       menu.Items.Clear();

                       if(menu.Column != null) {

                           menu.Items.Add(CreateCheckItem("Not Fixed", menu.Column, FixedStyle.None, imageList2.Images[0]));

                           menu.Items.Add(CreateCheckItem("Fixed Left", menu.Column, FixedStyle.Left, imageList2.Images[1]));

                           menu.Items.Add(CreateCheckItem("Fixed Right", menu.Column, FixedStyle.Right, imageList2.Images[2]));

                       }

                  }

             }

             #endregion

             #region New column menu

             DXMenuCheckItem CreateCheckItem(string caption, GridColumn column, FixedStyle style, Image image) {

                  DXMenuCheckItem item = new DXMenuCheckItem(caption, column.Fixed == style, image, new EventHandler(OnFixedClick));

                  item.Tag = new MenuInfo(column, style);

                  return item;

             }

             void OnFixedClick(object sender, EventArgs e) {

                  DXMenuItem item = sender as DXMenuItem;

                  MenuInfo info = item.Tag as MenuInfo;

                  if(info == null) return;

                  info.Column.Fixed = info.Style;

             }

             class MenuInfo {

                  public MenuInfo(GridColumn column, FixedStyle style) {

                       this.Column = column;

                       this.Style = style;

                  }

                  public FixedStyle Style;

                  public GridColumn Column;

             }

    #endregion

     

     

    ///gridview cardView自动行高

    l          行高自动匹配

     gridView1.OptionsView.RowAutoHeight = ce.Checked;

     cardView1.OptionsBehavior.FieldAutoHeight = ce.Checked;

    l          当文字多的时候(行高自动匹配 设置是才有用)

         repositoryItemMemoEdit1.LinesCount = ce.Checked ? 0 : 1;

         设置自动全部显示该的所有行。

    l          图片时(行高自动匹配 设置是才有用)

         repositoryItemPictureEdit1.CustomHeight = ce.Checked ? 0 : 40;

     

     

    ///BandedGridView自己订制列的方法

    advBandedGridView1.ColumnsCustomization();

    advBandedGridView1.DestroyCustomization();

     

    advBandedGridView1.OptionsCustomization.AllowChangeColumnParent = edit.Checked;

    advBandedGridView1.OptionsCustomization.AllowChangeBandParent = edit.Checked;

    advBandedGridView1.OptionsCustomization.ShowBandsInCustomizationForm = edit.Checked;

    ///设置 图片动画模式

    gridView1.OptionsView.AnimationType = (GridAnimationType)

     

    ///根据字段来分组模式

    switch(index) {

                           case 0:

                                SetInterval(gridColumn1, ColumnGroupInterval.Alphabetical);

                                gridColumn2.GroupInterval = ColumnGroupInterval.Alphabetical;

                                break;

                           case 1:

                                SetInterval(gridColumn5, ColumnGroupInterval.DateMonth);

                                break;

                           case 2:

                                SetInterval(gridColumn5, ColumnGroupInterval.DateYear);

                                break;

                           case 3:

                                SetInterval(gridColumn5, ColumnGroupInterval.DateRange);

                                break;

                           case 4:

                                SetSortMode(gridColumn4, ColumnSortMode.Custom);

                                break;

                           default:

                                SetInterval(gridColumn2, ColumnGroupInterval.Value);

                                break;

                                              }

     

         void SetInterval(GridColumn column, ColumnGroupInterval interval) {

                  column.GroupInterval = interval;

                  column.GroupIndex = 0;

             }

            

             void SetSortMode(GridColumn column, ColumnSortMode sortMode) {

                  column.SortMode = sortMode;

                  column.GroupIndex = 0;

             }

    改变分组样式

    gridView1.OptionsView.GroupDrawMode = (GroupDrawMode)

     

    ///清除分组

    gridView1.ClearGrouping(); 

    foreach(GridColumn column in gridView1.Columns) {

                           column.GroupInterval = ColumnGroupInterval.Default;

                           column.SortMode = ColumnSortMode.Default;

                                              }

    ///CustomDataSummaries设置Grop

    private void numCustom_ValueChanged(object sender, System.EventArgs e) {

                CustomGridView.UpdateSummary();

                UpdateCaptions(numCustom.Value);

            }

            private void UpdateCaptions(decimal d) {

                CustomGridView.GroupSummary[0].DisplayFormat = "(Order Count [WHERE Freight >= " + d.ToString() + "] = {0})";

                OnSetCaption("");

                gridView2.FormatConditions[0].Value1 = d;

            }

            protected override void OnSetCaption(string fCaption) {

                fCaption = "count records WHERE Freight >= " + numCustom.Value.ToString();

                if(Caption != null)

                    Caption.Text = string.Format("{0} ({1})", TutorialName, fCaption);

            }

    ///下面的效果的实现

     

    Run Designere -> Style Conditions ->Add ->column设置列的 Condition设置条件 value1,value2是参数值

     

    代码:

       public void setStyle(GridView gridView)

            {

                StyleFormatCondition cn;

     

                cn = new StyleFormatCondition(FormatConditionEnum.Equal, gridView.Columns["bd_c"], null,false);

                cn.ApplyToRow = true;//false只对列其作用。

                cn.Appearance.Font = new Font(AppearanceObject.DefaultFont, FontStyle.Bold);

                cn.Appearance.ForeColor = Color.Brown;

                gridView.FormatConditions.Add(cn);

            }

     

    ///LayoutView

     

     

    layoutView1.OptionsCarouselMode.PitchAngle = (float)(((int)flatFactor.EditValue) / 360.0f * 2 * Math.PI);///卡片的高度设置flatFactor.EditValue的值(0-360)

    layoutView1.OptionsCarouselMode.RollAngle = (float)(((int)rollAngle.EditValue) / 360.0f * 2 * Math.PI);// ///卡片的旋转角度设置rollAngle.EditValue的值(0-360)

    layoutView1.OptionsCarouselMode.BottomCardScale = ((int)endSizeScale.EditValue) / 100.0f;

     ///卡片的距离设置endSizeScale.EditValue的值(0-100)

    layoutView1.OptionsCarouselMode.BottomCardAlphaLevel = ((int)endAlpha.EditValue) / 100.0f;

    ///卡片的卡片透明程度设置endAlpha.EditValue的值(0-100)

     layoutView1.OptionsCarouselMode.BottomCardFading = ((int)bottomCardFading.EditValue) / 100.0f; ///卡片的卡片褪色程度设置bottomCardFading.EditValue的值(0-100)

    layoutView1.OptionsCarouselMode.CardCount = (int)cardsCount.EditValue;

    ///卡片的能显示数量设置cardsCount.EditValue的值(0-20)

    layoutView1.OptionsCarouselMode.InterpolationMode = (InterpolationMode)

    //修改卡片的方式

     

    ///layout卡片的样式在 run designer -> layout里面设置

     

     Size originalCardMinSize = Size.Empty;

            private void zoomTrackBarControl1_EditValueChanged(object sender, EventArgs e) {

                if(originalCardMinSize == Size.Empty) originalCardMinSize = layoutView1.CardMinSize;

                double koeff = ((int)zoomTrackBarControl1.EditValue) / 100.0 - 0.2;

                Size newSize = new Size(originalCardMinSize.Width + (int)(originalCardMinSize.Width * koeff), originalCardMinSize.Height + (int)(originalCardMinSize.Height * koeff));

                layoutView1.CardMinSize = newSize;

            }////设置卡片的大小的(zoomTrackBarControl1z(0-100))

     

    下图中设置layoutView位置的方法

     protected void SetMasterTableLeftPlacement() {

                LayoutItemDragController dc = new LayoutItemDragController(masterTableItem, detailTableItem, InsertLocation.Before, LayoutType.Horizontal);

                DoDragItem(dc);

                SetMasterViewColumnLayout();

            }

            protected void SetMasterTableRightPlacement() {

                LayoutItemDragController dc = new LayoutItemDragController(masterTableItem, detailTableItem, InsertLocation.After, LayoutType.Horizontal);

                DoDragItem(dc);

                SetMasterViewColumnLayout();

            }

            private void SetMasterTableTopPlacement() {

                LayoutItemDragController dc = new LayoutItemDragController(masterTableItem, detailTableItem, InsertLocation.Before, LayoutType.Vertical);

                DoDragItem(dc);

                SetMasterViewRowLayout();

            }

            protected void SetMasterTableBottomPlacement() {

                LayoutItemDragController dc = new LayoutItemDragController(masterTableItem, detailTableItem, InsertLocation.After, LayoutType.Vertical);

                DoDragItem(dc);

                SetMasterViewRowLayout();

            }

            protected void DoDragItem(LayoutItemDragController dc) {

                masterTableItem.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Default;

                masterTableItem.Move(dc);

            }

            protected void SetMasterViewColumnLayout() {

                SetMasterItemVerticalSize();

                employesLayoutView.OptionsBehavior.AllowSwitchViewModes = true;

                employesLayoutView.OptionsView.ViewMode = LayoutViewMode.Column;

                employesLayoutView.OptionsBehavior.AllowSwitchViewModes = false;

                employesLayoutView.Refresh();

            }

            protected void SetMasterViewRowLayout() {

                SetMasterItemHorizontalSize();

                employesLayoutView.OptionsBehavior.AllowSwitchViewModes = true;

                employesLayoutView.OptionsView.ViewMode = LayoutViewMode.Row;

                employesLayoutView.OptionsBehavior.AllowSwitchViewModes = false;

                employesLayoutView.Refresh();

            }//// private DevExpress.XtraLayout.LayoutControlItem masterTableItem;

           

     

    ///直接打印gridcontrol

    Cursor currentCursor = Cursor.Current;

    Cursor.Current = Cursors.WaitCursor; //取当前的鼠标。并设置

    if(DevExpress.XtraPrinting.PrintHelper.IsPrintingAvailable)

    DevExpress.XtraPrinting.PrintHelper.ShowPreview(gridControl1);///打印

    else

    MessageBox.Show("XtraPrinting Library is not found...", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);

    Cursor.Current = currentCursor;

     /Files/pan11jing/第三方控件DevExpress.rar

  • 相关阅读:
    为什么程序员难找对象?
    项目为什么会失败(预估时间真的很难,必须有充分的心理准备,所有人高度重视项目的难度。总结:如果客户觉得事情简单,那么项目一定会延期。如果客户和老板都觉得事情简单,那么项目会烂尾)
    在Ubuntu 12.04 LTS下成功访问Windows域共享(mount //192.168.1.102/share -o user=DOMIAN\user,pass=passwd /mnt)
    微服务架构
    net core web服务器实现
    突破内存限制的高性能排序
    .Net Core:部署应用
    Apollo的Oracle适配
    前端模块化
    通用的业务技术架构
  • 原文地址:https://www.cnblogs.com/pan11jing/p/1638982.html
Copyright © 2011-2022 走看看