MsFlexGrid 的使用方法
- 格式:wps
- 大小:490.50 KB
- 文档页数:9
MSFlexGrid控件概述1、作用:该控件以表格形式显示二维字符数组中每个单元的数据。
常用于处理复杂的二维数据表的问题。
如校历表、学生宿舍表、学生班级成绩表等。
2、添加到控件箱菜单命令:工程 | 部件,在部件对话框中选择:Microsoft FlexGrid Control 6.0 (SP6)。
3、主要属性(1)Rows与Cols属性:分别用于设置或返回MSFlexGrid控件的行数与列数。
(2)Row与Col属性:分别用于设置或返回MSFlexGrid控件中活动单元的行号与列号。
(3)TextMatrix属性:该属性用于表示MSFlexGrid控件中单元格的内容。
格式为:TextMatrix (Row, Col);其中Row与Col分别表示单元格在MSFlexGrid控件中的行号与列号。
(4)FixedRows属性:用于设置表格显示过程中固定不变的行数。
如FixedRows=1,则表示固定行为1,如图8.3中第1行。
(5)FixedCols属性:用于设置表格中固定不变的列数。
如FixedCols=1,则表示固定列为1,如图8.3中第1列。
(6)FixedColor属性:用于设置固定行与固定列的颜色。
(7)MouseRow与MouseCol属性:用于返回鼠标光标所在单元格的行号与列号。
(8) ColWidth(Col)、RowHigh(Row)属性:用于设置与返回第Col列的宽度与第Row 行的高度,例如设置第0列的宽度为1500,第0行的高度为300的赋值语句为:ColWidth(0) = 1500RowHeight(0) = 300(9)DataSource属性:用于选择数据表,只能通过Data数据源控件选择数据表。
说明,若要用ADO Data控件作为数据源,则应使用MSHFlexGrid控件。
(10)MousePointer属性:用于设置鼠标光标形状,属性取值与光标形状如表8.1所示。
【例8.1】编写程序,定义MSFlexGrid1控件为10行、5列表格,给每一个单元格赋值为Row+Col,其中Row与Col分别表示控件单元格的行号与列号。
vbMSFlexGrid数据控件数据排序在进行数据库编程的时候,经常会用到MSFlexGrid控件进行数据显示。
并且对数据进行排序是必不可少的一个环节。
使用WINDOWS 系统的用户,会习惯于点击标题进行数据排序。
而MSFlexGrid控件本身没有这个功能,笔者经过实践,总结出了点击MSFlexGrid标题进行排序的方法,与大家一起分享。
崔占民EMAIL:*************先添加MSFlexGrid控件,方法:菜单->工程->部件->Microsoft FlexGrid Control 6.0(后面为版本号),代码如下:Option ExplicitPrivate Const STR_SORT_ASC = "△"Private Const STR_SORT_DESC = "▽"Private Sub Form_Load()Dim i As Long'添加一些试验数据With MSFlexGrid1.Rows = 51.Cols = 5For i = 0 To 50.TextMatrix(i, 0) = ("Col" & i).TextMatrix(i, 1) = ("Col" & i).TextMatrix(i, 2) = ("Col" & i).TextMatrix(i, 3) = ("Col" & i).TextMatrix(i, 4) = ("Col" & i)NextEnd WithEnd Sub'排序函数Public Sub Sort(sgrd As MSFlexGrid, y As Single)With sgrdIf y >= .RowPos(0) And y < .RowPos(1) ThenIf .Tag <> "" ThenIf .Tag <> .Col Then.TextMatrix(0, .Tag) = Left(.TextMatrix(0, .Tag), Len(.TextMatrix(0, .Tag)) - 1)End IfEnd IfIf Right(.TextMatrix(0, .Col), 1) = STR_SORT_ASC Then.Sort = flexSortGenericAscending.TextMatrix(0, .Col) = Replace(.TextMatrix(0, .Col), STR_SORT_ASC, STR_SORT_DESC)ElseIf Right(.TextMatrix(0, .Col), 1) = STR_SORT_DESC Then .Sort = flexSortGenericDescending.TextMatrix(0, .Col) = Replace(.TextMatrix(0, .Col), STR_SORT_DESC, STR_SORT_ASC)Else.Sort = flexSortGenericDescending.TextMatrix(0, .Col) = .TextMatrix(0, .Col) & STR_SORT_ASC End If.Tag = .ColEnd IfEnd WithEnd SubPrivate Sub MSFlexGrid1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)Sort MSFlexGrid1, yEnd Sub代码不多,不过实现的功能还是很方便的~~~~~。
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总行数和总列数的定义: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 '删除第三行。
msflexgrid1 标头与表格对齐方式
在MSFlexGrid控件中,可以通过设置行和列的对齐方式来实现标头与表格的对齐方式。
对于表格内容的对齐方式,可以通过设置列的Alignment属性来实现。
Alignment属性有以下几种取值:
- flexAlignLeft(左对齐)
- flexAlignCenter(居中对齐)
- flexAlignRight(右对齐)
例如,如果想要将第一列的内容左对齐,可以使用以下代码:
```
MSFlexGrid1.ColAlignment(0) = flexAlignLeft
```
对于标头的对齐方式,可以通过设置列的AlignmentHeader属性来实现。
AlignmentHeader属性也有同样的几种取值。
例如,如果想要将第一列的标头左对齐,可以使用以下代码:
```
MSFlexGrid1.ColAlignmentHeader(0) = flexAlignLeft
```
通过设置列的Alignment和AlignmentHeader属性,可以实现标头与表格内容的不同对齐方式。
VB_msflexgrid中设置内容对齐方式使用.FixedAlignment (设置指定列的对齐方式).ColAlignment (设置指定固定列的对齐方式)常数值描述flexAlignLeftT op 0 单元格的内容左、顶部对齐。
flexAlignLeftCenter 1 字符串的缺省对齐方式。
单元格的内容左、居中对齐。
flexAlignLeftBottom 2 单元格的内容左、底部对齐。
flexAlignCenterTop 3 单元格的内容居中、顶部对齐。
flexAlignCenterCenter 4 单元格的内容居中、居中对齐。
flexAlignCenterBottom 5 单元格的内容居中、底部对齐。
flexAlignRightT op 6 单元格的内容右、顶部对齐。
flexAlignRightCenter 7 数值的缺省对齐方式。
单元格的内容右、居中对齐。
flexAlignRightBottom 8 单元格的内容右、底部对齐。
flexAlignGeneral 9 单元格的内容按一般方式进行对齐。
字符串按“左、居中”显示,数字按“右、居中”显示。
FormatString 属性设置 MSHFlexGrid的列宽、对齐方式、固定行文本和固定列文本。
语法object.FormatString [= string]FormatString 属性的语法包含如下部分:部分描述object 一个对象表达式,其值为“应用于”列表中的一个对象。
string 一个字符串表达式,为格式化在行和列中的文本。
如在说明中所述。
说明在设计时,MSHFlexGrid 语法分析和解释FormatString 来获得如下信息:行和列的数目、行和列标头的文本、列宽和列对齐方式。
FormatString 属性包含由管道字符(|) 分隔的段。
管道字符之间的文本定义一列并且也可能包含特定的对齐字符。
这些字符使整个列左对齐(<)、居中(^)或右对齐(>)。
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 '删除第三行。
msflexgrid控件用法MSFlexGrid控件是Visual Basic 6.0提供的一种非常有用的表格控件,可以在窗体中创建可编辑的网格。
它允许用户浏览和编辑多行和多列的数据,还可以对数据进行排序、过滤和格式化。
在本文中,我将详细介绍MSFlexGrid控件的用法,包括创建、显示和操作表格数据。
一、创建和显示MSFlexGrid控件在使用MSFlexGrid控件之前,首先需要在窗体中添加一个FlexGrid控件。
在VB6的工具箱中,可以找到FlexGrid控件并将其拖放到窗体上。
在窗体上添加FlexGrid控件后,可以通过设置控件的属性来进行进一步的配置和定制。
1. 设置列数和行数在使用MSFlexGrid控件之前,首先需要设置表格的列数和行数。
可以通过设置Col属性和Row属性来实现。
例如,设置表格的列数为5,行数为10的代码示例如下:MSFlexGrid1.Cols = 5MSFlexGrid1.Rows = 102. 设置表格显示样式可以通过设置控件的属性来设置表格的样式,例如,可以设置表格的边框颜色、背景颜色和字体。
以下是一些常用的属性设置示例:MSFlexGrid1.BorderStyle = flexBorderStyleFixedSingle ' 设置边框样式为单线条MSFlexGrid1.BackColor = vbWhite ' 设置背景颜色为白色MSFlexGrid1.ForeColor = vbBlack ' 设置前景颜色为黑色MSFlexGrid1.FontSize = 12 ' 设置字体大小为12号3. 添加数据到表格可以通过设置控件的TextMatrix属性来添加数据到表格中。
TextMatrix属性是一个二维数组,可以通过指定行和列的索引来设置相关的数据。
例如,将数据“Apple”添加到(1,1)位置的代码示例如下:MSFlexGrid1.TextMatrix(1, 1) = "Apple"二、操作MSFlexGrid控件中的数据在将数据添加到表格之后,可以对表格中的数据进行许多操作,例如,读取单元格数据、排序和过滤数据等。
VBMSFlexGrid控件的几种简单的使用方法'MSFlexGrid赋值的方法MSFlexGrid1.TextMatrix(0, 1) = "老师"MSFlexGrid1.TextMatrix(1, 2) = "学生"MSFlexGrid1.TextMatrix(2, 3) = "校长"MSFlexGrid1.TextMatrix(3, 4) = "班主任"MSFlexGrid1.TextMatrix(4, 5) = "教务主任"MSFlexGrid1.AddItem 2MSFlexGrid1.AddItem 4MSFlexGrid1.AddItem 6MSFlexGrid1.AddItem 8``MSFLEXGRID 中如何取的某个单元格的数据Private Sub MSFlexGrid1_Click()MsgBox MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, MSFlexGrid1.Col), vbOKOnly, "提示消息"End SubMSFlexGrid1.Row,表格中的当前行MSFlexGrid1.Col,表格中的当前列'初始化MSFlexGridDim i As IntegerMSFlexGrid1.Rows = 0For i = 0 To 10MSFlexGrid1.AddItem "AA" + Str(i)'For i = 0 To 10MSFlexGrid1.Col = 1MSFlexGrid1.Row = iMSFlexGrid1.Text = CStr(i)MSFlexGrid1.Col = 2MSFlexGrid1.Row = iMSFlexGrid1.Text = CStr(i) & CStr(i)MSFlexGrid1.Col = 3MSFlexGrid1.Row = iMSFlexGrid1.Text = CStr(i) & CStr(i) & CStr(i)Next i'实现MSFlexGrid控件,单行背景为浅灰,双行为兰色Dim j As IntegerWith MSFlexGrid1.AllowBigSelection = True ' 设置网格样式.FillStyle = flexFillRepeatFor j = 0 To .Rows - 1.Row = j: .Col = .FixedCols.ColSel = .Cols() - .FixedCols - 1If j Mod 2 = 0 Then.CellBackColor = &HC0C0C0 ' 浅灰Else.CellBackColor = vbBlue ' 兰色End IfNext jEnd With'在MsFlexGrid控件单元格中插入背景图形Set MSFlexGrid1.CellPicture = LoadPicture("f:\temp\snow.bmp")'MSFlexGrid控件如何移到最后一行MSFlexGrid1.TopRow = MSFlexGrid1.Rows - 1'隐藏第一行'Private Sub Command1_Click1()'MSFlexGrid1.RowHeight(1) = 0'End Sub'隐藏第一列'Private Sub Command_Click2()'MSFlexGrid1.ColWidth(1) = 0'End Sub在MSFlexGrid上点击右键,选择属性,选择"选择模式",自己任选点击得到行代码msgrid1.Col就是你选择的列号msgrid1.Row 就是你选择的行号msgrid1.text就是你选择单元格的内容。
wincc msflexgrid控件的用法WinCC是西门子推出的一套面向过程自动化的监控与控制软件,其功能强大,覆盖了自动化行业的各个领域,包括工业自动化、制造业、能源管理、公共设施、楼宇自动化等。
WinCC的多种控件是实现监控和报警功能的核心部分之一,其中MSFlexGrid控件是一种常用的控件之一,具有强大的灵活性和可扩展性,下面将详细介绍MSFlexGrid控件的用法。
一、MSFlexGrid控件的基本概念和特点MSFlexGrid控件是一种用于显示和编辑表格数据的控件,其特点是可以根据需要自定义行数和列数,并可以显示大量的数据。
MSFlexGrid控件支持多种数据类型,包括字符串、整数、浮点数等,同时还可以设置行高、列宽、颜色、字体等属性,以便于满足不同的显示需求。
二、MSFlexGrid控件的创建和初始化创建MSFlexGrid控件的步骤如下:1. 首先,需要在VB环境中打开一个新的工程,并添加一个MSFlexGrid控件。
2. 然后,可以通过拖拽的方式调整控件大小和位置,以适应实际的界面设计需求。
3. 接下来,需要设置控件的一些基本属性,例如行数、列数、行高、列宽等。
初始化MSFlexGrid控件的步骤如下:1. 在VB环境中打开代码编辑器,并在Form_Load事件中添加代码。
2. 通过代码设置控件的属性,例如行数、列数、行高、列宽等。
3. 通过代码设置控件的样式,例如背景颜色、字体等。
4. 可以通过代码向控件中添加数据,例如通过循环遍历的方式向每个单元格赋值。
三、MSFlexGrid控件的常用属性和方法MSFlexGrid控件有很多常用的属性和方法,下面列举一些常用的如下:1. Rows属性,用于设置和获取控件的行数。
2. Cols属性,用于设置和获取控件的列数。
3. RowHeights属性,用于设置和获取控件的行高。
4. ColWidths属性,用于设置和获取控件的列宽。
5. TextMatrix方法,用于设置和获取单元格的数据。
MSFlexGrid控件概述1、作用:该控件以表格形式显示二维字符数组中每个单元的数据。
常用于处理复杂的二维数据表的问题。
如校历表、学生宿舍表、学生班级成绩表等。
2、添加到控件箱菜单命令:工程 | 部件,在部件对话框中选择:Microsoft FlexGrid Control 6.0 (SP6)。
3、主要属性(1)Rows与Cols属性:分别用于设置或返回MSFlexGrid控件的行数与列数。
(2)Row与Col属性:分别用于设置或返回MSFlexGrid控件中活动单元的行号与列号。
(3)TextMatrix属性:该属性用于表示MSFlexGrid控件中单元格的内容。
格式为:TextMatrix (Row, Col);其中Row与Col分别表示单元格在MSFlexGrid控件中的行号与列号。
(4)FixedRows属性:用于设置表格显示过程中固定不变的行数。
如FixedRows=1,则表示固定行为1,如图8.3中第1行。
(5)FixedCols属性:用于设置表格中固定不变的列数。
如FixedCols=1,则表示固定列为1,如图8.3中第1列。
(6)FixedColor属性:用于设置固定行与固定列的颜色。
(7)MouseRow与MouseCol属性:用于返回鼠标光标所在单元格的行号与列号。
(8) ColWidth(Col)、RowHigh(Row)属性:用于设置与返回第Col列的宽度与第Row 行的高度,例如设置第0列的宽度为1500,第0行的高度为300的赋值语句为:ColWidth(0) = 1500RowHeight(0) = 300(9)DataSource属性:用于选择数据表,只能通过Data数据源控件选择数据表。
说明,若要用ADO Data控件作为数据源,则应使用MSHFlexGrid控件。
(10)MousePointer属性:用于设置鼠标光标形状,属性取值与光标形状如表8.1所示。
【例8.1】编写程序,定义MSFlexGrid1控件为10行、5列表格,给每一个单元格赋值为Row+Col,其中Row与Col分别表示控件单元格的行号与列号。
新建一个工程(ex8_1.vbp),窗体名为Form_ex81.frm。
在窗体上添加一个MSFlexGrid控件与一个Command控件,双击Command控件,输入如下程序:Private Sub Command1_Click()Dim Row, Col As Integer '定义两个变量用于接收表格的行与列With MSFlexGrid1.Rows = 10'定义表格为10行.Cols = 5'定义表格为5列For Row = 0 To .Rows - 1For Col = 0 To .Cols - 1.TextMatrix(Row, Col) = Row + Col '将表格中的每一个单元格赋值为Row+ColNext ColNext RowEnd WithEnd Sub运行程序后的界面如图8.3所示。
1、MSFlexGrid控件的事件(1)KeyPress事件:当用户按下或释放任何一个ANSI键(字母或数字等键)时触发。
定义:Private Sub <控件名>_KeyPress(KeyAscii As Integer)其中,形参KeyAscii用于将用户按下或释放的ANSI键值传送给KeyPress过程。
(2)KeyDown事件:当用户按下一个键时触发。
定义:Private Sub <控件名>_KeyDown(KeyCode As Integer, Shift As Integer)其中,形参KeyCode用于表示用户按键的类型,取值如表8.3所示。
形参Shift用于表示用户所按组合键(Ctrl、Alt、Shilt)的键值,取值如表8.4所示。
(3)KeyUp事件:当用户放开任何一个键时触发。
定义:Private Sub <控件名>_KeyUp(KeyCode As Integer, Shift As Integer)其中参数KeyCode与Shift的取值见表8.3与表8.4。
(4)MouseDown事件:当用户按下鼠标触发。
定义:Private Sub <控件名>_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)其中,形参Button表示用户按下的是鼠标左键、中键还是右键,取值如表8.5所示。
形参Shift取值类型见表8.4。
x、y为鼠标光标在控件内的位置坐标,单位为缇。
2、MSFlexGrid控件的方法(1)Clear方法:清除MSFlexGrid控件所有单元格中内容。
语句格式:MSFlexGrid.Clear(2)AddItem方法:在MSFlexGrid控件中添加一个新行。
语句格式:MSFlexGrid.AddItem(String,Index,Number)String为新增行中的字符串,用Tab键作为一行中各单元格字符串的分隔符。
Index为新增行的行号,若省略则添加到最后一行。
Number为添加行的带区号。
(3)RemoveItem方法:在MSFlexGrid控件中删除一行。
语句格式:MSFlexGrid. RemoveItem (Index,Number)Index为要删除行的行号。
Number为要删除行的带区号。
【例8.2】在MSFlexGrid控件上实现九九乘法表,并实现鼠标拖弋功能,即用鼠标拖动方法,将某单元格内容移动到另一个单元格中,或复制到另一个单元格中,如图8.4所示。
图8.4 用MSFLexGrid控件实现九九乘法表设计步骤:1、新建工程与窗体,在窗体上放置一个“退出”按钮、一个“计算九九乘法表”按钮和一个MSFlexGrid控件,设计步骤与属性设置演示:1、新建工程与窗体,在窗体上放置一个“退出”按钮、一个“计算九九乘法表”按钮和一个MSFlexGrid控件,设计步骤与属性设置演示:观看视频2、编写代码实现九九乘法表及鼠标拖弋功能(1)定义全局变量在窗体的通用与声明部分定义四个全局变量:Dim Cell As String, Ctrl As Boolean, Col As Long, Row As Long其中:Cell:用于传送单元格内容;Ctrl:用于判断是否按下“Ctrl”键;Col,Row:用于记录原单元格行号与列号。
(2)编写“计算九九乘法表”命令按钮事件处理过程双击“创建九九乘法表”按钮,编写如下事件处理过程。
Private Sub Command_Calculate_Click()Dim I As Integer, J As IntegerWith MSFlexGrid1.Clear ‘清除所有单元格内容For J = 1 To 9.TextMatrix(0, J) = J ‘在第0行赋数字1~9Next JFor I = 1 To 9.TextMatrix(I, 0) = I ‘在第0列赋数字1~9For J = 1 To 9.TextMatrix(I, J) = CStr(I) & "*" & CStr(J) & "=" & CStr(I * J) ‘赋九九乘法表的内容Next JNext IEnd WithEnd Sub(3)编写鼠标拖弋程序在某单元格按下鼠标左键时,触发MouseDown事件处理过程,在该过程中将光标形状改为“flexArrow ”,并将该单元格内容存放在全局变量Cell中。
拖弋鼠标到另一个单元格,放开鼠标左键,触发MouseUp事件处理过程。
在该过程中将光标形状恢复为“flexCross ”,并将全局变量Cell中内容赋给现单元格,另将前单元格内容删除。
于是前单元格的内容被移动到后单元格中,从而实现鼠标的拖弋功能。
若按下“Ctrl”键拖动鼠标时,光标形状改为“flexHourglass”,松开鼠标后。
前一个单元格的内容被复制到后一个单元格中。
①键按下事件处理过程KeyDown该过程用于判断是否按下“Ctrl”键。
若按下“Ctrl”键则将全局变量Ctrl赋True值,表示用户按下了“Ctrl”键。
Private Sub MSFlexGrid1_KeyDown(KeyCode As Integer, Shift As Integer)If KeyCode = vbKeyControl ThenCtrl = TrueEnd IfEnd Sub②键松开事件处理过程KeyUp该过程用于判断是否松开“Ctrl”键。
若松开“Ctrl”键则将全局变量Ctrl赋Flase值,表示用户松开“Ctrl”键。
Private Sub MSFlexGrid1_KeyUp(KeyCode As Integer, Shift As Integer)If KeyCode = vbKeyControl Then ‘也可用Shift= vbCtrlMask作为松开Ctrl键的判断条件Ctrl = FalseEnd IfEnd Sub③鼠标按下事件处理过程MouseDown在该过程中将光标形状改为“flexArrow ”,并将该单元格内容存放在全局变量Cell中,将单元格的行号与列号赋给全局变量Row与Col。
Private Sub MSFlexGrid1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)With MSFlexGrid1Row = .MouseRow ‘单元格的行号赋给RowCol = .MouseCol ‘单元格的列号赋给ColCell = .TextMatrix(.MouseRow, .MouseCol) ‘单元格的内容赋给Cell If Ctrl = False Then.MousePointer = flexArrow ‘若未按Ctrl键则光标为箭头形Else.MousePointer = flexHourglass ‘若按下Ctrl键则光标为杯形End IfEnd WithEnd Sub④鼠标松开事件处理过程MouseUp在该事件中将Cell中内容赋给当前单元格,当Ctrl=False时清除行号、列号为Row 与Col的原单元格内容,完成一次单元格内容的移动操作(Move);否则不清除原单元格内容完成一次复制操作(Copy),最后将光标恢复成“flexCross”(十字型)。
Private Sub MSFlexGrid1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)With MSFlexGrid1If Ctrl = Flase Then.TextMatrix(Row, Col) = "" ‘若未按Ctrl键则原单格清空End If.TextMatrix(.MouseRow, .MouseCol) = Cell ‘将Cell中原单元格内容赋给当前单元格.MousePointer = f lexCross‘光标恢复十字型End WithEnd Sub2、学生宿舍录入程序设计【例8.3】在学生档案管理系统(xsdagl.vbp)中,编写学生宿舍录入程序,如图8.5所示。