WinCC中MSFlexGrid控件编程程序.docx
《WinCC中MSFlexGrid控件编程程序.docx》由会员分享,可在线阅读,更多相关《WinCC中MSFlexGrid控件编程程序.docx(6页珍藏版)》请在冰豆网上搜索。
WinCC中MSFlexGrid控件编程程序
MSFlexGrid总行数和总列数的定义:
MSFlexGrid1.Rows=?
5?
?
?
?
'规定表格的总行数为5行MSFlexGrid1.Cols=2?
?
?
'规定表格的总列数为2行
MSFlexGrid某一单元格的文本内容MSFlexGrid1.TextMatrix(3,0)="网站地址"?
'定义第3行的左边表头文本内容为:
“网站地址”MSFlexGrid1.TextMatrix(3,2)"?
?
定义第3行第2列的文本内容为:
“”
右键选中MSFlexGrid的PrivateSubMSFlexGrid1_MouseDown(ButtonAsInteger,ShiftAsInteger,xAsSingle,yAsSingle)IfButton=vbRightButtonThenMSFlexGrid1.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.TextEndIfEndSub
MSFlexGrid的单元格被点击时的事件PrivateSubMSFlexGrid1_EnterCell()?
?
?
?
MSFlexGrid1.CellBackColor=vbBlue?
?
?
?
?
'被点中MSFlexGrid的单元格背景变兰色?
?
?
?
MSFlexGrid1.CellForeColor=vbWhite?
?
?
?
'字体变白色EndSub
MSFlexGrid的单元格失去光标后的事件PrivateSubMSFlexGrid1_LeaveCell()?
?
?
?
MSFlexGrid1.CellBackColor=vbWhite?
?
?
?
MSFlexGrid1.CellForeColor=vbBlueEndSub
使MSFlexGrid的单元格内容可编辑'前提:
新建两个text文本框,分别为text1和text1'====================从这里开始,使单元格可以编辑PrivateSubMSFlexGrid1_EnterCell()?
?
?
?
MSFlexGrid1.CellBackColor=vbBlue?
?
?
?
MSFlexGrid1.CellForeColor=vbWhite?
?
?
?
Text1.Text=MSFlexGrid1.Text?
?
?
?
Text1.SelStart=0?
?
?
?
Text1.SelLength=Len(Text1.Text)EndSub
PrivateSubMSFlexGrid1_LeaveCell()?
?
?
?
MSFlexGrid1.CellBackColor=vbWhite?
?
?
?
MSFlexGrid1.CellForeColor=vbBlueEndSub
PrivateSubText1_Change()?
?
?
?
MSFlexGrid1.TextMatrix(MSFlexGrid1.Row,MSFlexGrid1.Col)=Text1.TextEndSubPrivateSubText2_Change()'修改表头?
Dimr,cAsInteger?
r=MSFlexGrid1.Row?
c=0?
?
MSFlexGrid1.TextMatrix(r,0)=Text2.TextEndSub
PrivateSubText1_KeyDown(KeyCodeAsInteger,ShiftAsInteger)?
?
?
?
SelectCaseKeyCode?
?
?
?
?
?
?
?
CasevbKeyLeft,vbKeyRight,vbKeyUp,vbKeyDown?
?
?
?
?
?
?
?
?
?
?
?
KeyCode=0?
?
?
?
EndSelectEndSub'====================使单元格可以编辑,到此结束
MSFlexGrid选中整行和整列右键点?
MSFlexGrid控件,选“属性/样式”,把“合并单元格”选择为:
“0-Never”
MSFlexGrid插入行PrivateSubCommand1_Click()IfMSFlexGrid1.Rows<2ThenMSFlexGrid1.AddItem"AAA"&vbTab&"bbb"ElseMSFlexGrid1.AddItem"asdas"&vbTab&"bbb",2?
?
'这里的数字2表示在第2行处插入行EndIfEndSub
?
MSFlexGrid删除行MSFlexGrid1.RemoveItem3?
?
'删除第三行。
该方法无法删除第一行。
如果发现删不了。
那一定是你的其他代码写错或冲突了u3u3
复制MSFlexGrid单元格的文本内容Clipboard.SetTextMSFlexGrid1.TextMatrix(MSFlexGrid1.Row,MSFlexGrid1.Col)
===================================================以下内容来自网络MSFlexGrid属性类型说明AllowBigSelectorBoolean返回/设置一个值,定义当在行或列的头部单击时,是否该行或列将整个被选中AllowUseResizingEnum设置/返回一个值,定义用户是否可以调整网格行,列的尺寸BackColorOle_Color设置/返回一网格中非固定单元的背景色BackColorBandArray/Ole_Color设置/返回网格中每个独立BAND的背景色BachColorBkgOle_Color设置/返回网格的背景色(单元头部除外)BackColorFixedOle_Color设置/返回网格中固定单元的背景色BackColorHeaderArray/Ole_Color设置/返回网格头部单元的背景色BackColorIndentArray/Ole_Color设置/返回网格中凹痕部分的背景色BackColorSelOle_Color设置/返回网格选中单元的背景色BackColorUnpopulatedOle_Color设置/返回网格非用户操作区的背景色BandDataArray/Long为独BAND设置/返回任意的值,以合在代码中通过这些值确定BANDBandDisplayEnum定义在网格中BAND是水平还是垂直显示BandExpandableARRAY/BOOLEN设置/返回值指明独立的BAND能否被折叠或展开BandIndentArray/Long定义BAND划分的字段数量BandLevelLong返回当前的单元包含的BAND总数量BandsLong返回网格中BAND总数量CellAlignmentInteger设置/返回一个值以定义当前单元的水平和垂直对齐方式CellBackColorOle_Color定义当前单元的字体是否为粗体CellFontBoldBoolean定义当前单元的字体是否为粗体CellFontItalicBoolean定义当前单元的字体是否为斜体CellFontNameString定义当前单元的字体名CellFontSizeString定义当前单元的字体大小CellFontStrikeThoughBoolean定义当前单元的字体是否为突显示CellFontUnderlineBoolean定义当前单元的字体是有下划线CellFontWidthSingle定义当前单元的字体宽(用点表示)CellFontColorOle_Color设置/返回当前单元格的前景色CellHeightLong设置/返回当前单元格的高度CellLeftLong返回当前单元格的左边距CellPictureStdPicture设置/返回当前单元格的图片CellPictureAlignmentInteger设置/返回当前单元格或某范围的单元格的图像对齐方式CelltextStyleEnum设置/返回当前单元或选中范围单元文本的3D风格CellTopLong返回当前单元格的垂直位置CellTypeEnum设置/返回当前单元格的类型(标准.固定)CellWidthLong返回/设置当前的单元的宽度ClipString设置/返回网格选定范围单元的内容ColArray/Integer设置/返回当前单元的水平坐标ColAlignmentArray/Integer设置/返回当前列的对齐方式ColalignmentBandArray/Integer设置/返回BAND数据列的对齐方式ColAlignmentFixed?
Array/Integer设置/返回固定单元数据的对齐方式ColAlignmentHeaderArray/Integer设置/返回固定头部单元数据的对齐方式ColDataAyyay/Long为独立列设置/返回任意的值,以合在代码中通过这些值确定列ColHeaderArray/Enum定义每个BAND头部是否显示ColHeaderCaptionArray/Single定义每个BAND的列头部显示的文本ColIsVisibleARRAY/BOOLEN返回/设置某个列是否可见ColPosArray/Long返回某个给定列的左上角和网格左上角的距离ColpositionArray/Long设置网格列的位置ColsLong返回/设置网格的列数量ColSelArray/Long设置/返回某个范围单元的起始列ColWidthArray/Long设置/返回某个列的宽度ColWordWrapOptionArray/Integer设置/返回网格的非固定单元是否允许WRAPColWordWrapOptionBandArray/Integer定义网格的BAND是否允许WRAPColWordWrapOptionFixedArray/Integer定义列的固定单元是否允许WRAPColWordWrapOptionHeaderArray/Integer定义各头部是否允许WRAPDataFieldArray/Single一个独立列绑定的数据库字段FillStyleEnum定义改变文本或单元的其他属性是影响所有的选中单元还是只影响活动单元FixedColsLong设置/返回固定列的列数FixedRowsLong设置/返回固定行的行数FocusRectEnum定义控件对当前单元的焦点表示FontStdFont返回/设置默认字体或各单元使用的字体FontBandArray/StdFont设置/返回各BAND使用文本的字体FontFixedSingle设置/返回固定单元使用的字体FontHeaderArray/StdFont设置/返回各头部使用的字体FontWidthSingle设置/返回默认字体宽度FontWidthBandArray/Single设置/返回BAND使用的字宽FontWidthFixedSingle设置/返回固定单元使用的字宽FontWidthHeaderArray/Single设置/返回每个头部使用的字宽ForeColrOle_Color设置/返回网格非固定单元使用的前景色ForeColorBandArray/Ole_Color设置/返回网格各BAND的前景色ForeColorFixedOle_Color设置/返回网格固定单元的前景色.ForeColorHeaderArray/Ole_Color设置/返回网格头部单元的前景色ForeColorSelOle_Color设置/返回设置单元的前景色FormatStringString定义一个格式串用来设置网格列的宽度,对齐方式,固定行文本固定列文本GridColorOle_Color设置/返回网格单元间的线的颜色GridColorBandArray/Ole_Color设置/返回网格BAND的线的颜色GridColorFixedOle_Color设置返回网格固定单元间的线的颜色GridColorHeaderArray/Ole_Color设置/返回网格头部间的线的颜色GridColorIndentOle_Color设置/返回网格INDENT单元间的线的颜色GridColorUnpopulatedOle_Color设置/返回网格UNPOPULATED区域间的颜色GrigLineEnum定义网格单元间的线的类型GrigLinesBandArray/Enum定义网格各BAND间的线的类型GrigLinesFixedEnum定义网格固定单元的线的类型GrigLinesHeaderArray/Enum定义网格各头部间的线的类型GrigLinesIndentArray/Enum定义网格INDENT单元间的线的类型GrigLinesUnpopulatedEnum定义网格UNPOPULATED区域间的线的类型GrigLinesWidthInteger设置/返回网格单元间的线的宽度GrigLinesWidthBandArray/Integer设置/返回网格各BAND间的线的宽度GrigLinesWidthFixedInteger设置/返回网格固定单元间的线的宽度GrigLinesWidthHeaderArray/Integer设置/返回网格各头间的线的宽度GrigLinesWidthIndentArray/Integer设置/返回网格INDENT单元间的线的宽度GrigLinesWidthUnpopulatedInteger设置/返回网格UNPOPULATED区域间的宽度HieghtEnum定义如何以及何时高亮度显示网格的选中单元LeftColLong网格最械的可见列MergeCellsEnum设置/返回一个值表明如何及何时将有相同内容的记录进行合并MergeColARRAY/BOOLEN设置/返回一个值表明哪些列可以将内容合并MergeRowARRAY/BOOLEN设置/返回一个值表明哪些行可以将内容合并MouseColLong返回鼠标光标的列坐标位置MouseRowLong返回鼠标光标的行坐标位置PictureStdPicture返回MSHFLEXGRID的控件快照PictureTypeEnum设置/返回PICTURE类型RedrawBoolean设置/返回一个值,表明MSHFLEXGRIDR控件是否在每个改变后重画RowLong设置/返回当前单元的垂直坐标RowDataArray/Long为各行设置/返回任意的值,以合在代码中通过这些值确定行RowExpandableBoolean定义当前行是否可以展开RowExpandedBoolean返回一个值表明当前行是否展开RowHeightArray/Long设置/返回各行的高度RowHeightMinLong设置/返回网格中行的最小高度RowIsVisibleARRAY/BOOLEN设置/返回一个值,表明某个特定列是否可见RowPosArray/Long返回给定行左上角和MSHFLEXGRID控件左上角的距离RowPositionArray/Long设置某个网格行的位置RowsLong返回网格的行的总数或者或BAND的行的总数RowSelLong设置/返回一个范围的单元的起始行RowSizingModeEnum设置/返回一个值表明对一行的设置是影响网格的所有行还是只影响被调整的行ScrollBarsEnum设置/返回一个值表明MSHFLEXGRID控件的滚动条类型ScrollTrackBoolean设置/返回一个值表明网格内容是在用户移动滚动条时随着改变还是滚动结束后改变SelectionModeEnum设置/返回一个值表明MFHFLEXGRID控件允许的选择类型.SortEnum根据某些村准备设置排序的值TextString设置/返回一个单元或一个范围内单元的文本内容TextArrayarray/string不改变ROW,COL属性,设置/返回任意单元的文本内容TextMatrixarray/string设置/返回某个选定行,列的单元的文本内容TextStyleEnum设置/返回网格通常单元的3D文本风格TextStyleBandArray/Enum设置/返回网格BAND的3D文本风格TextStyleFixedEnum设置/返回网格各固定行的3D文本风格TextStyleHeaderArray/Enum设置/返回网格各头部的3D文本风格TopRowLong设置/返回网格最上面的可见行VersionInteger返回正在使用MSHFLEXGRID控件的版本WordWrapBoolean定义当到达单元的边界时,网格的单元的内容是否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事件会被激发,对选择的单元范围的改变,可以通过用户操作或程序代码来实现.