玩转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、如何隐藏GridControl的GroupPanel表头
设置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设置成如下样式
如图所示:
设置navBarGroup的PaintStyleName属性为: 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的列头
设置TreeListr的OptionsView的ShowColumns属性为:False
2、如何
八、PictureEdit
1、如何禁止PictureEdit的右键菜单?
设置PictureEdit的Properties->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