您的位置:首页 > 其它

玩转DevExpress.XtraGrid.view.gridview

2010-01-04 16:06 183 查看
(一)双击展开,收缩字表

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: