MSFlexGrid表格控件详细说明

合集下载

MSFlexGrid控件详解

MSFlexGrid控件详解

MSFlexGrid控件目录概述属性方法事件属性常数概述属性方法事件属性常数展开编辑本段概述MSFlexGrid控件显示和操作表格数据。

其对包含字符串和图片的表格提供了灵活的排序、插入数据和格式编排功能。

当与Data控件绑定时,MSFlexGrid控件只显示只读数据。

你可以在MSFlexGrid中的任何单元放置文本、图片或这二者。

Row和Col属性指定MSFlexGrid控件的当前单元。

你可以在代码中指定当前单元,也可以在运行时使用鼠标或键盘改变当前单元。

Text属性引用了当前单元中的文本。

如果单元中的文本太长以致不能在单元中一行显示,将WordWrap属性置为True将在单元中分多行显示文本。

要在单元中显示多行文本,你需要增大单元的宽度(ColWidth属性)或行高度(RowHeight属性)。

使用Cols和Rows属性确定MSFlexGrid控件中的行数和列数。

编辑本段属性OLEDropMode属性(ActiveX控件),Height, Width属性(ActiveX控件),Index属性(ActiveX控件),Left, Top属性(ActiveX控件),Tag属性(ActiveX控件),Visible属性(ActiveX控件),Object属性(ActiveX控件),ColPos属性,ColPositon, RowPosition属性,Cols, Rows 属性(MSHFlexGrid),ColSel,RowSel属性,ColWidth属性(MSHFlexGrid),FillStyle属性(MSHFlexGrid),FixedCols, FixedRows属性(MSHFlexGrid),FocusRect属性,FontWidth,FontWidthBand, FontWidthFixed, FontWidthHeader属性(MSHFlexGrid),ForeColor, ForeColorBand, ForeColorFixed, ForeColorHeader, ForeColorSel属性,FormatString属性,GridColor, GirdColorBand, GridColorFixed, GridColorHeader,GridColorIndent, GridColorUnpopulated属性,GridLines, GridLinesBand,GridLinesFixed, GridLinesHeader, GridLinesIndent, GridLineUnpopulated属性(MSHFlexGrid),GridLineWidth, GridLineWidthBand,GridLineWidthFixed,GridLineWidthHeader, GridLineWidthIndent, GridLineWidthUnpopulated属性(MSHFlexGrid),HighLight属性(MSHFlexGrid),LeftCol属性(MSHFlexGrid),MergeCells属性,MergeCol, MergeRow属性,MouseCol, MouseRow属性,Name属性(MSHFlexGrid),Picture属性(MSHFlexGrid),PictureType属性,Redraw属性,RowHeight 属性(MSHFlexGrid),RowHeightMin属性,RowVisible属性,RowPos属性,ScrollBars属性(MSHFlexGrid),ScrollTrack属性,SelectionMode 属性,Sort属性(MSHFlexGrid),Text属性(MSHFlexGrid),TextArray 属性,TextMatrix属性,TextStyle, TextStyleBand, TextStyleFixed, TextStyleHeader属性(MSHFlexGrid),TopRow属性(MSHFlexGrid),Version属性(MSHFlexGrid),WordWrap属性(MSHFlexGrid),AllowBigSelection属性,AllowUserResizing属性,BackColor, BackColorBkg, BackColorFixed, BackColorSel属性,CellAlignment属性,CellBackColor, CellForeColor属性,CellFontBold属性,CellFontItalic属性,CellFontName属性,CellFontSize属性,CellFontStrikeThrough属性,CellFontUnderline属性,CellFontWidth 属性,CellHeight, CellLeft, CellTop, CellWidth属性(MSHFlexGrid),CellPicture属性,CellPictureAlignment属性,CellTextStyle属性,Clip 属性(MSHFlexGrid),Col,Row属性(MSHFlexGrid),ColAlignment, ColAlignmentBand, ColAlignmentHeader属性(MSHFlexGrid),ColData, RowData, BandData属性(MSHFlexGrid),ColIsVisible属性,DataBindings 属性,TabIndex属性,DragIcon属性,DragMode属性,MouseIcon属性,TabStop属性,HelpContextID属性,Parent属性,Container属性,ToolTipText属性,WhatsThisHelp属性,Appearance属性(ActiveX控件),BorderStyle属性(ActiveX控件),Enabled属性(ActiveX控件),DataSource属性(ActiveX控件),hWnd属性(ActiveX控件),MousePointer 属性(ActiveX控件)。

关于vc的mshflexgrid控件的用法

关于vc的mshflexgrid控件的用法

关于vc的mshflexgrid控件的用法这一节包含关于MSHFlexGrid 的控件常数的信息。

注意这些常数也应用到MSFlexGrid,除非有不同地注解。

AddModeSettings 属性(MSHFlexGrid)常数值描述flexNoAddNew 0 当前单元不在最后行中,并且没有AddNew 操作处于待决。

flexAddNewCurrent 1 当前单元在最后一行,但没有AddNew 操作处于待决。

flexAddNewPending 2 当前单元在倒数第二行。

这是是通过MSHFlexGrid 用户接口由用户初始化一个待决的AddNew 操作的结果,或者是编程地设置一个列的Value 或Text 属性的结果。

AllowUserResizing 属性常数值描述flexResizeNone 0 用户不能使用鼠标调整大小。

这是缺省设置值。

flexResizeColumns 1 用户可以使用鼠标调整列的大小。

flexResizeRows 2 用户可以使用鼠标调整行的大小。

flexResizeBoth 3 用户可以使用鼠标调整列和行的大小。

Appearance 属性常数值描述flexFlat 0 MSHFlexGrid 的全部外观是平面的或正常的。

flex3D 1 MSHFlexGrid 的全部外观是三维的。

BorderStyle 属性常数值描述flexBorderNone 0 没有边框。

flexBorderSingle 1 有一个单边框。

CellAlignment 属性常数值描述flexAlignLeftTop 0 单元内容顶部左对齐。

flexAlignLeftCenter 1 单元内容中间左对齐。

对字符串的缺省设置值。

flexAlignLeftBottom 2 单元内容底部左对齐。

flexAlignCenterTop 3 单元内容顶部居中。

flexAlignCenterCenter 4 单元内容中间居中。

MSFlexGrid控件

MSFlexGrid控件

MSFlexGrid控件MSFlexGrid控件显示和操作表格数据。

其对包含字符串和图片的表格提供了灵活的排序、插入数据和格式编排功能。

当与Data控件绑定时,MSFlexGrid控件只显示只读数据。

你可以在MSFlexGrid中的任何单元放置文本、图片或这二者。

Row和Col属性指定MSFlexGrid控件的当前单元。

你可以在代码中指定当前单元,也可以在运行时使用鼠标或键盘改变当前单元。

Text属性引用了当前单元中的文本。

如果单元中的文本太长以致不能在单元中一行显示,将WordWrap属性置为True将在单元中分多行显示文本。

要在单元中显示多行文本,你需要增大单元的宽度(ColWidth属性)或行高度(RowHeight属性)。

使用Cols和Rows属性确定MSFlexGrid控件中的行数和列数。

MSFlexGrid特有事件※注1:MSFlexGrid控件的特有事件全部是不带参数的,要注意与DataGrid控件的同名事件区分※注2:执行顺序:LeaveCell → SelChange → EnterCell → RowColChange◇SelChange事件 (DISPID = 69)Private Sub object_SelChange()void OnSelChange(void);◇RowColChange事件 (DISPID = 70)Private Sub object_RowColChange()void OnRowColChange(void);◇EnterCell事件 (DISPID = 71)Private Sub object_EnterCell()void OnEnterCell(void);◇LeaveCell事件 (DISPID = 72)Private Sub object_LeaveCell()void OnLeaveCell(void);◇Scroll事件 (DISPID = 73)Private Sub object_Scroll()void OnScroll(void);◇Compare事件Private Sub object_Compare(row1, row2, cmp)void OnCompare(long nRow1, long nRow2, CMP_FUNC pFunc)ActiveX控件事件。

wincc msflexgrid控件的用法

wincc msflexgrid控件的用法

wincc msflexgrid控件的用法在Siemens WinCC 中,`MSFlexGrid` 控件通常被称为"Grid" 或"FlexGrid" 控件,用于在界面上显示和编辑表格数据。

以下是一些基本的`MSFlexGrid` 控件的用法示例:1. 在窗体上添加MSFlexGrid 控件:-打开WinCC 项目。

-在画面设计器中,找到"FlexGrid" 或"Grid" 控件。

-将控件拖放到你想要显示表格的位置。

2. 设置MSFlexGrid 的属性:-双击`MSFlexGrid` 控件,打开属性窗口。

-在属性窗口中,你可以设置行数、列数、列标题、单元格格式等。

3. 通过代码设置和读取数据:-在WinCC 的VBScript 或ANSI C 脚本中,你可以使用代码操纵`MSFlexGrid` 控件。

-设置单元格的值:```vbMSFlexGrid1.TextMatrix(1, 1) = "Hello"```-读取单元格的值:```vbDim cellValuecellValue = MSFlexGrid1.TextMatrix(1, 1)```4. 处理事件:- `MSFlexGrid` 控件支持一些事件,你可以在脚本中处理这些事件。

例如,点击单元格的事件:```vbSub MSFlexGrid1_Click()MsgBox "Cell Clicked!"End Sub```5. 设置单元格格式:-你可以通过代码设置单元格的格式,如字体、颜色等。

```vbMSFlexGrid1.Col = 1MSFlexGrid1.Row = 1MSFlexGrid1.CellBackColor = RGB(255, 0, 0) ' 设置背景颜色为红色```这只是一个简单的用法示例。

MSFlexGrid控件的常用属性

MSFlexGrid控件的常用属性
FixedCols
获得或设置FlexGrid的固定(不可滚动)列的总数
FixedRows
获得或设置FlexGrid的固定(不可滚动)行的总数
FocusRect
决定FlexGrid控件是否应该绘制一中心矩形环绕当前单元。取值为:
0 flexFocusNone
1 flexFocusLight
2 flexFocusHeavy
1 flexGridFlat(实线)
2 flexGridInset(突出)
3 flexGridRaised
GridLinesFixed
获得或设置固定行和列的画线的类型。取值为:
0 flexGridNone(无网络线)
1 flexGridFlat(实线)
2 flexGridInset(突出)
3 flexGridRaised(凹陷)
该控件获得焦点时,失去焦点的控件的Validate事件是否发生。取值为:
True发生
False不发生
Clos
决定FlexGrid中的总列数
DataSource
获得或设置控件的数据源
DragIcon
该对象在拖动过程中鼠标的图标
DragMode
该对象的拖动模式,取值为:
0 vbManual(手动)
1 vbAutomatic(自动)
Enabled
用于设定是否对事件产生响应。取值为:
True可用
False不可用。在执行程序时,该对象用灰色显示,并且不响应任何事件
FillStyle
决定是否设置FlexGrid的文本属性或单元格属性之一可以应用到全部已选的单元。取值为:
0 flexFillSingle
1 flexFillRepeat

MSFlexGrid控件属性及使用方法整理

MSFlexGrid控件属性及使用方法整理

MSFlexGrid控件属性及使用方法整理================================================= MSFlexGrid总行数和总列数的定义:MSFlexGrid1.Rows = 5 '规定表格的总行数为5行MSFlexGrid1.Cols = 2 '规定表格的总列数为2行MSFlexGrid某一单元格的文本内容MSFlexGrid1.TextMatrix(3, 0) ="网站地址" '定义第3行的左边表头文本内容为:“网站地址”MSFlexGrid1.TextMatrix(3, 2) =" " 定义第3行第2列的文本内容为:“”右键选中MSFlexGrid的Private Sub MSFlexGrid1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)If Button = vbRightButton ThenMSFlexGrid1.Row = y / MSFlexGrid1.RowHeight(0) - 0.5MSFlexGrid1.RowSel = MSFlexGrid1.Row'右键选种当前行---备用u3u3:'MSFlexGrid1.Col = 0'MSFlexGrid1.ColSel = MSFlexGrid1.Cols - 1'右键选种当前单元格---备用u3u3:'MSFlexGrid1.Col = x / MSFlexGrid1.ColWidth(0) - 0.5'MSFlexGrid1.Col = MSFlexGrid1.Col'Text1.Text = MSFlexGrid1.TextEnd IfEnd SubMSFlexGrid的单元格被点击时的事件Private Sub MSFlexGrid1_EnterCell()MSFlexGrid1.CellBackColor = vbBlue '被点中MSFlexGrid的单元格背景变兰色MSFlexGrid1.CellForeColor = vbWhite '字体变白色End SubMSFlexGrid的单元格失去光标后的事件Private Sub MSFlexGrid1_LeaveCell()MSFlexGrid1.CellBackColor = vbWhiteMSFlexGrid1.CellForeColor = vbBlueEnd Sub使MSFlexGrid的单元格内容可编辑'前提:新建两个text文本框,分别为text1和text1'====================从这里开始,使单元格可以编辑Private Sub MSFlexGrid1_EnterCell()MSFlexGrid1.CellBackColor = vbBlueMSFlexGrid1.CellForeColor = vbWhiteText1.Text = MSFlexGrid1.TextText1.SelStart = 0Text1.SelLength = Len(Text1.Text)End SubPrivate Sub MSFlexGrid1_LeaveCell()MSFlexGrid1.CellBackColor = vbWhiteMSFlexGrid1.CellForeColor = vbBlueEnd SubPrivate Sub Text1_Change()MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, MSFlexGrid1.Col) = Text1.TextEnd SubPrivate Sub Text2_Change() '修改表头Dim r, c As Integerr = MSFlexGrid1.Rowc = 0MSFlexGrid1.TextMatrix(r, 0) = Text2.TextEnd SubPrivate Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)Select Case KeyCodeCase vbKeyLeft, vbKeyRight, vbKeyUp, vbKeyDownKeyCode = 0End SelectEnd Sub'====================使单元格可以编辑,到此结束MSFlexGrid选中整行和整列右键点 MSFlexGrid控件,选“属性/样式”,把“合并单元格”选择为:“0 - Never”然后运行程序,就会发现MSFlexGrid可以自由选择整行或整列了!MSFlexGrid插入行Private Sub Command1_Click()If MSFlexGrid1.Rows < 2 ThenMSFlexGrid1.AddItem "AAA" & vbTab & "bbb"ElseMSFlexGrid1.AddItem "asdas" & vbTab & "bbb", 2 '这里的数字2表示在第2行处插入行End IfEnd SubMSFlexGrid删除行MSFlexGrid1.RemoveItem 3 '删除第三行。

MSFlexGrid控件属性及使用方法

MSFlexGrid控件属性及使用方法

MSFlexGrid控件属性及使用方法整理by u3u3以下容由u3u3编写测试成功!请注明来自:================================================= MSFlexGrid总行数和总列数的定义:MSFlexGrid1.Rows = 5 '规定表格的总行数为5行MSFlexGrid1.Cols = 2 '规定表格的总列数为2行MSFlexGrid某一单元格的文本容MSFlexGrid1.TextMatrix(3, 0) ="地址" '定义第3行的左边表头文本容为:“地址”MSFlexGrid1.TextMatrix(3, 2) =" " 定义第3行第2列的文本容为:“”右键选中MSFlexGrid的Private Sub MSFlexGrid1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)If Button = vbRightButton ThenMSFlexGrid1.Row = y / MSFlexGrid1.RowHeight(0) - 0.5MSFlexGrid1.RowSel = MSFlexGrid1.Row'右键选种当前行---备用u3u3:'MSFlexGrid1.Col = 0'MSFlexGrid1.ColSel = MSFlexGrid1.Cols - 1'右键选种当前单元格---备用u3u3:'MSFlexGrid1.Col = x / MSFlexGrid1.ColWidth(0) - 0.5'MSFlexGrid1.Col = MSFlexGrid1.Col'Text1.Text = MSFlexGrid1.TextEnd IfEnd SubMSFlexGrid的单元格被点击时的事件Private Sub MSFlexGrid1_EnterCell()MSFlexGrid1.CellBackColor = vbBlue '被点中MSFlexGrid的单元格背景变兰色MSFlexGrid1.CellForeColor = vbWhite '字体变白色End SubMSFlexGrid的单元格失去光标后的事件Private Sub MSFlexGrid1_LeaveCell()MSFlexGrid1.CellBackColor = vbWhiteMSFlexGrid1.CellForeColor = vbBlueEnd Sub使MSFlexGrid的单元格容可编辑'前提:新建两个text文本框,分别为text1和text1'====================从这里开始,使单元格可以编辑Private Sub MSFlexGrid1_EnterCell()MSFlexGrid1.CellBackColor = vbBlueMSFlexGrid1.CellForeColor = vbWhiteText1.Text = MSFlexGrid1.TextText1.SelStart = 0Text1.SelLength = Len(Text1.Text)End SubPrivate Sub MSFlexGrid1_LeaveCell()MSFlexGrid1.CellBackColor = vbWhiteMSFlexGrid1.CellForeColor = vbBlueEnd SubPrivate Sub Text1_Change()MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, MSFlexGrid1.Col) = Text1.TextEnd SubPrivate Sub Text2_Change() '修改表头Dim r, c As Integerr = MSFlexGrid1.Rowc = 0MSFlexGrid1.TextMatrix(r, 0) = Text2.TextEnd SubPrivate Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer) Select Case KeyCodeCase vbKeyLeft, vbKeyRight, vbKeyUp, vbKeyDownKeyCode = 0End SelectEnd Sub'====================使单元格可以编辑,到此结束MSFlexGrid选中整行和整列右键点 MSFlexGrid控件,选“属性/样式”,把“合并单元格”选择为:“0 - Never”然后运行程序,就会发现MSFlexGrid可以自由选择整行或整列了!MSFlexGrid插入行Private Sub Command1_Click()If MSFlexGrid1.Rows < 2 ThenMSFlexGrid1.AddItem "AAA" & vbTab & "bbb"ElseMSFlexGrid1.AddItem "asdas" & vbTab & "bbb", 2 '这里的数字2表示在第2行处插入行End IfEnd SubMSFlexGrid删除行MSFlexGrid1.RemoveItem 3 '删除第三行。

MSHflexGrid表格控件使用方法(1)

MSHflexGrid表格控件使用方法(1)

MSHflexGrid表格控件使用方法(1)2009-07-18 14:36下面我给大家讲一下MSHFLEXGRID常用的属性,方法事件,还有一些不能不知道的技巧.1) MSHFLEXGRID的重要属性.MSHFLEXGRID的属性非常多,其实绝大部分的属性和网格的显示的外观有关.在MSDN里,这些属性足以将人搞得眼花缭乱的了(我相信你没有耐性一个一个地翻查).下面列出常用的属性,方法事件及其简要说明.以便查阅.属性类型说明AllowBigSelector Boolean 返回/设置一个值,定义当在行或列的头部单击时,是否该行或列将整个被选中AllowUseResizing Enum 设置/返回一个值,定义用户是否可以调整网格行,列的尺寸BackColor Ole_Color 设置/返回一网格中非固定单元的背景色BackColorBand Array/Ole_Color 设置/返回网格中每个独立BAND的背景色BachColorBkg Ole_Color 设置/返回网格的背景色(单元头部除外) BackColorFixed Ole_Color 设置/返回网格中固定单元的背景色BackColorHeader Array/Ole_Color 设置/返回网格头部单元的背景色BackColorIndent Array/Ole_Color 设置/返回网格中凹痕部分的背景色BackColorSel Ole_Color 设置/返回网格选中单元的背景色BackColorUnpopulated Ole_Color 设置/返回网格非用户操作区的背景色BandData Array/Long 为独BAND设置/返回任意的值,以合在代码中通过这些值确定BANDBandDisplay Enum 定义在网格中BAND是水平还是垂直显示BandExpandable ARRAY/BOOLEN 设置/返回值指明独立的BAND能否被折叠或展开BandIndent Array/Long 定义BAND划分的字段数量BandLevel Long 返回当前的单元包含的BAND总数量Bands Long 返回网格中BAND总数量CellAlignment Integer 设置/返回一个值以定义当前单元的水平和垂直对齐方式CellBackColor Ole_Color 定义当前单元的字体是否为粗体CellFontBold Boolean 定义当前单元的字体是否为粗体CellFontItalic Boolean 定义当前单元的字体是否为斜体CellFontName String 定义当前单元的字体名CellFontSize String 定义当前单元的字体大小CellFontStrikeThough Boolean 定义当前单元的字体是否为突显示CellFontUnderline Boolean 定义当前单元的字体是有下划线CellFontWidth Single 定义当前单元的字体宽(用点表示)CellFontColor Ole_Color 设置/返回当前单元格的前景色CellHeight Long 设置/返回当前单元格的高度CellLeft Long 返回当前单元格的左边距CellPicture StdPicture 设置/返回当前单元格的图片CellPictureAlignment Integer 设置/返回当前单元格或某范围的单元格的图像对齐方式CelltextStyle Enum 设置/返回当前单元或选中范围单元文本的3D风格CellTop Long 返回当前单元格的垂直位置CellType Enum 设置/返回当前单元格的类型(标准.固定)CellWidth Long 返回/设置当前的单元的宽度Clip String 设置/返回网格选定范围单元的内容Col Array/Integer 设置/返回当前单元的水平坐标ColAlignment Array/Integer 设置/返回当前列的对齐方式ColalignmentBand Array/Integer 设置/返回BAND数据列的对齐方式ColAlignmentFixed Array/Integer 设置/返回固定单元数据的对齐方式ColAlignmentHeader Array/Integer 设置/返回固定头部单元数据的对齐方式ColData Ayyay/Long 为独立列设置/返回任意的值,以合在代码中通过这些值确定列ColHeader Array/Enum 定义每个BAND头部是否显示ColHeaderCaption Array/Single 定义每个BAND的列头部显示的文本ColIsVisible ARRAY/BOOLEN 返回/设置某个列是否可见ColPos Array/Long 返回某个给定列的左上角和网格左上角的距离Colposition Array/Long 设置网格列的位置Cols Long 返回/设置网格的列数量ColSel Array/Long 设置/返回某个范围单元的起始列ColWidth Array/Long 设置/返回某个列的宽度ColWordWrapOption Array/Integer 设置/返回网格的非固定单元是否允许WRAP ColWordWrapOptionBand Array/Integer 定义网格的BAND是否允许WRAP ColWordWrapOptionFixed Array/Integer 定义列的固定单元是否允许WRAP ColWordWrapOptionHeader Array/Integer 定义各头部是否允许WRAP DataField Array/Single 一个独立列绑定的数据库字段FillStyle Enum 定义改变文本或单元的其他属性是影响所有的选中单元还是只影响活动单元FixedCols Long 设置/返回固定列的列数FixedRows Long 设置/返回固定行的行数FocusRect Enum 定义控件对当前单元的焦点表示Font StdFont 返回/设置默认字体或各单元使用的字体FontBand Array/StdFont 设置/返回各BAND使用文本的字体FontFixed Single 设置/返回固定单元使用的字体FontHeader Array/StdFont 设置/返回各头部使用的字体FontWidth Single 设置/返回默认字体宽度FontWidthBand Array/Single 设置/返回BAND使用的字宽FontWidthFixed Single 设置/返回固定单元使用的字宽FontWidthHeader Array/Single 设置/返回每个头部使用的字宽ForeColr Ole_Color 设置/返回网格非固定单元使用的前景色ForeColorBand Array/Ole_Color 设置/返回网格各BAND的前景色ForeColorFixed Ole_Color 设置/返回网格固定单元的前景色.ForeColorHeader Array/Ole_Color 设置/返回网格头部单元的前景色ForeColorSel Ole_Color 设置/返回设置单元的前景色FormatString String 定义一个格式串用来设置网格列的宽度,对齐方式,固定行文本固定列文本GridColor Ole_Color 设置/返回网格单元间的线的颜色GridColorBand Array/Ole_Color 设置/返回网格BAND的线的颜色GridColorFixed Ole_Color 设置返回网格固定单元间的线的颜色GridColorHeader Array/Ole_Color 设置/返回网格头部间的线的颜色GridColorIndent Ole_Color 设置/返回网格INDENT单元间的线的颜色GridColorUnpopulated Ole_Color 设置/返回网格UNPOPULATED区域间的颜色GrigLine Enum 定义网格单元间的线的类型GrigLinesBand Array/Enum 定义网格各BAND间的线的类型GrigLinesFixed Enum 定义网格固定单元的线的类型GrigLinesHeader Array/Enum 定义网格各头部间的线的类型GrigLinesIndent Array/Enum 定义网格INDENT单元间的线的类型GrigLinesUnpopulated Enum 定义网格UNPOPULATED区域间的线的类型GrigLinesWidth Integer 设置/返回网格单元间的线的宽度GrigLinesWidthBand Array/Integer 设置/返回网格各BAND间的线的宽度GrigLinesWidthFixed Integer 设置/返回网格固定单元间的线的宽度GrigLinesWidthHeader Array/Integer 设置/返回网格各头间的线的宽度GrigLinesWidthIndent Array/Integer 设置/返回网格INDENT单元间的线的宽度GrigLinesWidthUnpopulated Integer 设置/返回网格UNPOPULATED区域间的宽度Hieght Enum 定义如何以及何时高亮度显示网格的选中单元LeftCol Long 网格最械的可见列MergeCells Enum 设置/返回一个值表明如何及何时将有相同内容的记录进行合并MergeCol ARRAY/BOOLEN 设置/返回一个值表明哪些列可以将内容合并MergeRow ARRAY/BOOLEN 设置/返回一个值表明哪些行可以将内容合并MouseCol Long 返回鼠标光标的列坐标位置MouseRow Long 返回鼠标光标的行坐标位置Picture StdPicture 返回MSHFLEXGRID的控件快照PictureType Enum 设置/返回PICTURE类型Redraw Boolean 设置/返回一个值,表明MSHFLEXGRIDR控件是否在每个改变后重画Row Long 设置/返回当前单元的垂直坐标RowData Array/Long 为各行设置/返回任意的值,以合在代码中通过这些值确定行RowExpandable Boolean 定义当前行是否可以展开RowExpanded Boolean 返回一个值表明当前行是否展开RowHeight Array/Long 设置/返回各行的高度RowHeightMin Long 设置/返回网格中行的最小高度RowIsVisible ARRAY/BOOLEN 设置/返回一个值,表明某个特定列是否可见RowPos Array/Long 返回给定行左上角和MSHFLEXGRID控件左上角的距离RowPosition Array/Long 设置某个网格行的位置Rows Long 返回网格的行的总数或者或BAND的行的总数RowSel Long 设置/返回一个范围的单元的起始行RowSizingMode Enum 设置/返回一个值表明对一行的设置是影响网格的所有行还是只影响被调整的行ScrollBars Enum 设置/返回一个值表明MSHFLEXGRID控件的滚动条类型ScrollTrack Boolean 设置/返回一个值表明网格内容是在用户移动滚动条时随着改变还是滚动结束后改变SelectionMode Enum 设置/返回一个值表明MFHFLEXGRID控件允许的选择类型. Sort Enum 根据某些村准备设置排序的值Text String 设置/返回一个单元或一个范围内单元的文本内容TextArray array/string 不改变ROW,COL属性,设置/返回任意单元的文本内容TextMatrix array/string 设置/返回某个选定行,列的单元的文本内容TextStyle Enum 设置/返回网格通常单元的3D文本风格TextStyleBand Array/Enum 设置/返回网格BAND的3D文本风格TextStyleFixed Enum 设置/返回网格各固定行的3D文本风格TextStyleHeader Array/Enum 设置/返回网格各头部的3D文本风格TopRow Long 设置/返回网格最上面的可见行Version Integer 返回正在使用MSHFLEXGRID控件的版本WordWrap Boolean 定义当到达单元的边界时,网格的单元的内容是否WRAP2) MSHFLEXGRID控件的重要方法方法说明AddItem 向网格中加入一新行Clear 清除网格中的内容ClearStructure 清除网格的结构(映射信息)CollapseAll 折叠网格的某个特定的所有行ExpandAll 展开网格的某个特定的所有行RemoveItem 从网格中清除一行方法AddItem和RemoveItem可以用来向网格中加入或删除行(BANDS).如果折叠或展开某个BAND的所有行,则可以使用COLLAPSEALL和EXPAANDALL方法.方法CLEAR可以清除网格中的内容,但不影响网格的行,列数,如果要清除网格的结构,包括顺序及网格各列的名称,应当使用ClearStructure方法.3) MSHFELXGRID的控件的主要事件Collapse 用户折叠了网格的一行Compare 当SORT属性被设置为CUSTOMERSORT,允许用户定义排序过程EnterCell 当一个新的单元成为当前活动单元时Expand 用户展开了网格的一行LeaveCell 当一个新单元成为当前活动单元前RowColChange 当一个新单元成为当前活动单元时Scroll 用户用键盘,滚动条滚动网格的内容或网格的内容由程序滚动时SelChangeEvent 一个新范围内的单元被选中EnterCell, LeaveCell, RowColChange事件相互联系,因为字们都在当一个新单元成为当前活动单元时被激发,实际上这些事件的顺序是:LeaveCell, EnterCell然后是RowColChange.Collapse和Expand事件在用户折叠或者展开网格的一行(BAND)时被激发.属性ROW和COL可以用来确定用户折叠或者展开的单元.当SORT属性设置为9时,对网格的每两行发生一次COMPARE事件,用户排序方法使你可以选择按照午任意列或单元对行排序.注意,使用这种排序方式的速度会慢于BUILD-IN排序.不论采用何种方式,只要对网格进行滚动时,SCROLL事件就会被激发.当SCROLLTRACK属性设置为TRUE时,如果用户用鼠标拖动或滚动时,该事件也被激发,如果SCROLLTRACK属性被设置为FALSE时,SCROLL事件只在拖动结束后激发一次.当选择单元格变化时, SelChangeEvent事件会被激发,对选择的单元范围的改变,可以通过用户操作或程序代码来实现.1) MSHFLEXGRID的编辑.关于MSHFLEXGRID的编辑,很多书都有介绍.一般都是用一个TEXTBOX作为的输入框,通过移动TEXTBOX来达到类似于EXCEL的编辑功能.很多书介绍的方法是在MOUSEDOWN或CLICK事件中移动TEXTBOX,然后,再在LeaveCell事件中写入. 本文的方法与其有类似之处,但亦有小许不同,主要在写入网格时,在TEXTBOX的Change事件中写入.2)网格内容的保存与加载对于网格的保存,一般人喜欢使用.Clip属性,将整个网格一次性地写入一个文件中,当然,在文件不大时,这当然是一个好办法.但是,当网格达到几千行几万行时,这个方法好象不是很好.(各位如果有兴趣的话,可以试试下面的程序)‘将网格设置成5000*12,然后用随机数填充网格.然后,调用下面程序Private Sub Command4_Click()Dim msgStr As StringDim FileID As LongDim T1 As DateDim T2 As DateT1 = Timer()With MSHFlexGrid1.Row = 0.Col = 0.RowSel = .Rows - 1.ColSel = .Cols - 1FileID = FreeFilemsgStr = .ClipOpen "C:\LX.TXT" For Output As #FileIDPrint #FileID, msgStrClose #FileIDEnd WithT2 = Timer()MsgBox T2 - T1End Sub反正我的感觉是:好象死机一般,要过一分多钟后计算机才能反应过来(实测是82.5秒左右,我的计算机是:AMD2500+,512M内存).为什么一次性的写入会如此的慢呢?这大概是有的人想不到的地方.其实,这跟VB处理字符串的机制有关,如果处理5K的字符串要一秒的话,那么,处理30K的字符串绝不是处理5K的6倍,而是长得多.这种关系几乎是呈某种几何级数的关系.明白了VB原来处理大字符串的效率原来是这么底.那么,解决的办法自然就有了.就是一个字:拆,将大拆小将会大大地加快处理字符串的速度.所以,下面的网格的保存函数的主要思想就将网格中的数据分步保存,每一次保存一小部分.直到整个网格保存完成.当然,其中还有一些细小的技巧,例如:保存时将先将网格中的行,列,固定行,固定列的总数保存,然后,保存各列的宽度,再然后正式保存数据.这都是为了加载的方便与快捷作了一定的处理.(参考下面的程序)Option ExplicitDim m_Row As LongDim m_Col As LongPrivate Sub Command3_Click()'填充网格Dim R As LongDim C As LongFor R = 0 To MSHFlexGrid1.Rows - 1For C = 0 To MSHFlexGrid1.Cols - 1MSHFlexGrid1.TextMatrix(R, C) = R & CNextNextEnd SubPrivate Sub Form_Load()With MSHFlexGrid1Text1.Visible = False.RowHeight(-1) = 285'设定网格是5000行.12列..Rows = 5000: .Cols = 12End WithEnd Sub'保存文件Private Sub Command1_Click()Call SaveFile(MSHFlexGrid1, "c:\kk.grd")End Sub'加载文件Private Sub Command2_Click()Call LoadFile(MSHFlexGrid1, "c:\kk.grd")End SubPrivate Sub MSHFlexGrid1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)Text1.Visible = FalseWith MSHFlexGrid1m_Row = .MouseRowm_Col = .MouseColIf m_Row < .FixedRows Then m_Row = .FixedRowsIf m_Col < .FixedCols Then m_Col = .FixedCols.Row = m_Row: .Col = m_ColText1.Move .Left + .CellLeft, .Top+ .CellTop, .CellWidth, .CellHeightText1.Text = .TextText1.Visible = TrueText1.SetFocusEnd WithEnd SubPrivate Sub Text1_Change()With MSHFlexGrid1.TextMatrix(m_Row, m_Col) = Text1End WithEnd Sub'//**以下是相应的功能函数''加载一个文件到表格.'函数:LoadFileToGrid'参数:MsgObj Mshfelxgrid控件名,FileName 加载的文件名'返回值:=True 成功.=True 失败.Public Function LoadFile(MsgObj As Control, FileName As String) As Long Dim InputID As Long, FileID As LongDim EndRow As Long, DltAdd As LongDim AddFlag As BooleanDim KeyTab As String, KeyEnter As StringDim FixedRows As Long, FixedCols As LongDim GridInput As String, AddSum As String, RowColMax() As String Dim GridColMax As Long, GridRowMax As LongDim OleRow As Long, OleCol As LongDim SumFmtStr As StringDim DltCol As LongOn Error Resume NextWith MsgObj.Redraw = FalseErr.Clear: SetAttr FileName, 0If Err.Number <> 0 Then '如果文件不存在Err.ClearCall SaveFile(MsgObj, FileName).Redraw = TrueExit FunctionEnd IfKeyTab = Chr$(vbKeyTab): KeyEnter = Chr$(13)InputID = 0: AddSum = ""AddFlag = False: DltAdd = 25: DltCol = 1.Redraw = False: .FixedRows = 0: .FixedCols = 0FileID = FreeFileOpen FileName For Input As #FileIDDo While Not EOF(FileID) ' 循环至文件尾。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MSFlexGrid 表格控件详细说明控件名:Microsoft FlexGrid Control文件:sys\msflxgrd.ocx============================= 属性=========================================■AllowBigSelection 属性在行头或者列头上单击时,(是否)可以使得整个行或者列都被选中。

■AllowUserResizing 属性 (是否)可以用鼠标来对 MSFlexGrid 控件中行和列的大小进行重新调整。

-------------------------------------■Appearance 属性设计时的绘图风格■BorderStyle 属性边框样式-------------------------------------■BackColorBkg 属性 '表格多余部分颜色■BackColorFixed 属性 '表格头部分颜色■BackColorSel属性 '选中部分颜色■BackColor属性 '所有未确定单元的颜色■CellBackColor 和 CellForeColor 属性返回或设置单个单元或者一群单元的背景和前景颜色。

-------------------------------------■ForeColor、ForeColorFixed 以及 ForeColorSel 属性各部分上文本的颜色。

■TextStyle 和 TextStyleFixed[= style ] 属性返回或设置指定单元或者一群单元上文本的三维样式。

----------------------------------------■FixedAlignment (index)= [value] 属性列号,设置值flexAlignLeftTop 0 左顶部flexAlignLeftCenter 1 左中flexAlignLeftBottom 2 左底部flexAlignCenterTop 3 中顶部flexAlignCenterCenter 4 中中flexAlignCenterBottom 5 中底部flexAlignRightTop 6 右顶部flexAlignRightCenter 7 右中flexAlignRightBottom 8 右底部■ColAlignment(number) 属性 [= value ] 返回或设置某一列中数据的对齐方式number=列号,或者 -1(一次性地对所有列进行设置)。

value 的设置值:flexAlignLeft 0 左边对齐flexAlignRight 1 右边对齐flexAlignCenter 2 居中■TextStyle 和 TextStyleFixed[= style ] 属性返回或设置指定单元或者一群单元上文本的三维样式。

■CellTextStyle 属性 [= value ]单元或者一群单元上文本的三维样式flexTextFlat 0 平面的(普通文本)flexTextRaised 1 凸起的flexTextInset 2 下陷的flexTextRaisedLight 3 轻微凸起的flexTextInsetLight 4 轻微下陷的■CellPictureAlignment 属性 [= value ] 单元或者一群选定单元中图片的对齐方式flexLeftTop 0 左边顶端对齐flexLeftCenter 1 左边中间对齐flexLeftBottom 2 左边底端对齐flexCenterTop 3 居中顶端对齐flexCenterCenter 4 居中中间对齐flexCenterBottom 5 居中底端对齐flexRightTop 6 右边顶端对齐flexRightCenter 7 右边中间对齐flexRightBottom 8 右边底端对齐■CellAlignment 属性单元或者一群选定单元中的数据对齐方式。

flexLeftTop 0 左边顶端对齐flexLeftCenter 1 左边中间对齐(对于字符串来说,这是缺省时的情况)flexLeftBottom 2 左边底端对齐flexCenterTop 3 居中顶端对齐flexCenterCenter 4 居中中间对齐flexCenterBottom 5 居中底端对齐flexRightTop 6 右边顶端对齐flexRightCenter 7 右边中间对齐(对于数字来说,这是缺省时的情况)flexRightBottom 8 右边底端对齐flexGeneral 9 一般的情况是:对于字符串来说,左边中间对齐,对于数字来说,右边中间对齐'设置所有单元的对齐方式Static k As IntegerIf k > 9 Then k = 0For i = 0 To MSFlexGrid1.Rows - 1For j = 0 To MSFlexGrid1.Cols - 1MSFlexGrid1.Row = iMSFlexGrid1.Col = jMSFlexGrid1.CellAlignment = kNext jNext ik = k + 1----------------------------------------■CellFontBold 当前单元文本的粗体样式■CellFontItalic当前单元文本的斜体样式■CellFontName当前单元文本的字体名■CellFontSize当前单元文本的尺寸■CellFontStrikeThrough (是否)将 FontStrikeThrough 样式应用到当前单元文本中。

■CellFontUnderline 当前单元文本中(是否)下划线■CellFontWidth以点数表示的当前单元文本宽度-------------------------------------■CellHeight、CellLeft、CellTop 以及 CellWidth 属性返回以缇为单位的当前单元的位置和大小。

在设计时不可用。

■ColPos ( index ) 属性该属性返回以缇为单位的控件左上角跟指定列左上角之间的距离。

■RowPos( index ) 属性该属性返回以缇为单位的控件的左上角和指定行的左上角之间的距离。

■ColWidth( number ) [= value ] 属性返回或设置以缇为单位的指定列的宽度number 列号。

如果是 -1,则一次对所有列进行设置。

value 列的宽度 0 创建不可见的列, -1宽度重置为其缺省值,这取决于当前字体的大小。

■RowHeight( number )[= value ] 属性该属性返回或设置以缇为单位的指定行的高度。

若将 RowHeight 设置为 0,则创建不可见的行。

若设置为 -1,则将行的高度重置为其缺省值,这取决于当前字体的大小。

■RowHeightMin 属性该属性返回或设置以缇为单位的整个控件的最小行高度。

----------------------------------------■CellPicture 属性当前单元或者一群单元中显示的图象[= picture ]----------------------------------------■Clip 属性 [= string ](当把数据放入MSFlexGrid 控件选定区域单元格)该属性返回或设置 MSFlexGrid 控件的选定区域中单元的内容。

在设计时不可用。

制表符Chr(9)移到右一格,回车换行符Chr(13)移到下一行-------------------------------------------------------■Col 和 Row [= number ] 属性返回或设置活动单元的坐标(当前单元行、列)■ColSel 和 RowSel[= value ] 属性返回或设置一群单元的起始或结束的行或者列。

在设计时不可用。

在设置了 Row 和 Col 属性之后,会自动对 RowSel 和 ColSel 进行重置当前单元的值(由 Col 和 Row 的设置值所决定的),就是包含在那个单元中的文本。

可以TextMatrix属性在不改变已选定的 Row 和 Col 属性的情况下,对单元的值进行修改。

■Cols 和 Rows [= value ] 返回或设置 MSFlexGrid 中行或者列的总数。

■FixedCols 和 FixedRows [= value ] 固定列或者固定行的总数。

缺省一个固定列和一个固定行----------------------------------------------------------■ColData(number) 和 RowData(number)属性[= value ]返回或设置跟每个行和列相关联的一个任意的 long 类型的值number 控件中的行号或者列号。

-------------------------------------------------------■ColIsVisible(index) 属性指定某列在当前(是否)是可见的-------------------------------------------------------■ColPosition(number)[= value ]属性(横向移动)■RowPosition(number)[= value ]属性(纵向移动)对行或者列的位置进行设置,从而允许将行和列移动到指定位置。

number 将被移动的行号或列号,value 行或者列的新位置。

当用这些属性来移动某一行或者列时,所有格式化信息都将随之一起移动。

如果想只移动文本,可以用 Clip 属性。

例如,下面的代码当用户在某一行上单击时,将该行移动到第一个位置:Sub MSFlexGrid1_Click ()MSFlexGrid1.ColPosition(MSFlexGrid1.MouseCol) = 0End Sub-------------------------------------------------------■Container [= container] 属性返回或设置该控件的容器:Form、Frame、PictureBox■DataB indings 属性返回 DataBindings 集合对象,该对象包含了有用的可绑定属性。

■DataSource 属性设置一个指定 Data 控件的值,通过这个控件将当前控件连结到数据库上。

在运行时不可用要完成同 Data 控件所管理的 Recordset 中的字段的连接,还必须提供 DataField 属性中Field 对象的名称。

相关文档
最新文档