MSFlexGrid控件
VBMSFlexGrid控件的几种使用方法
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就是你选择单元格的内容。
VB MSHFlexGrid控件
Microsoft Hierarchical FlexGrid (MSHFlexGrid) 控件对表格数据进行显示和操作。
在对包含字符串和图片的表格进行分类、合并以及格式化时,具有完全的灵活性。
当绑定到Data控件上时,MSHFlexGrid所显示的是只读数据。
语法MSHFlexGrid说明可以将文本、图片,或者文本和图片,放在MSHFlexGrid的任意单元中。
Row和Col属性指定了MSHFlexGrid中的当前单元。
程序员可以在代码中指定当前单元,也可以在运行时(代码正在运行的期间。
在运行期间,程序员象用户一样与代码进行交互。
),使用鼠标或者方向键来对其进行修改。
Text属性引用当前单元的内容。
如果单元的文本过长而不能在该单元中显示,而且WordWrap属性被设置为True,那么文本就会换行到同一单元内的下一行。
为了显示换行的文本,可能需要增加单元的列宽度(ColWidth属性)或者行高度(RowHeight属性)。
可以用Cols和Rows属性来决定MSHFlexGrid控件中的列数和行数。
显示层次结构记录集MSHFlexGrid 控件的一个主要特性是它能显示层次结构记录集-以层次结构方式显示的关系表。
创建层次结构记录集的最容易的方法是使用数据环境设计器并把MSHFlexGrid控件的DataSource属性赋给数据环境。
您也可以用 Shape 命令作为ADO Data Control的RecordSource在代码中创建层次结构记录,如下面的示例:' 创建 ConnectionString.Dim strCn As StringstrCn = "Provider=MSDataShape.1;Data Source=Nwind;" & _"Connect Timeout=15;Data Provider=MSDASQL"' 创建 Shape 命令.Dim strSh As StringstrSh = "SHAPE {SELECT * FROM `Customers`} AS Customers " & _ "APPEND ({SELECT * FROM `Orders`} AS Orders RELATE " & _ "CustomerID TO CustomerID) AS Orders"' 把 ConnectionString 赋给 ADO Data Control 的' ConnectionString 属性, Shape 命令以及' 控件的 RecordSource 属性.With Adodc1.ConnectionString = strCn.RecordSource = strShEnd With' 把 HflexGrid 控件的 DataSource 属性设置到' ADO Data 控件。
VB编程中网格控件的选用及使用
VB编程中网格控件的选用及使用在VB编程中,网格控件(Grid Control)是一种非常常见的控件。
它可以在程序界面中方便地展示和编辑表格数据,实现数据的快速查找、排序和过滤等功能。
本文将介绍VB编程中网格控件的选用及使用。
一、网格控件的选用在VB编程中,常见的网格控件包括MSFlexGrid、VSFlexGrid、True DBGrid等。
下面将逐一对它们进行介绍。
1.1 MSFlexGridMSFlexGrid是VB 6.0自带的网格控件,它的优点在于易于使用和轻量级。
MSFlexGrid可以显示文本、数值、日期、图像等类型的数据,并支持排序、过滤等基本操作,可以满足大部分数据展示的需求。
MSFlexGrid的缺点在于功能相对较为简单,不能进行复杂的数据操作和自定义样式的渲染。
1.2 VSFlexGridVSFlexGrid是由ComponentOne公司开发的一个强大的网格控件,它的优点在于功能非常丰富,支持多种数据格式和数据操作,可以进行自定义样式的渲染,可以满足更复杂的数据展示需求。
VSFlexGrid的缺点在于相对较为复杂和庞大,同时需要购买设置许可证。
1.3 True DBGridTrue DBGrid是由ComponentOne公司开发的一个类似于VSFlexGrid的网格控件,它的优点在于功能非常强大,支持多种数据格式和数据操作,支持复杂的分组和联合查询,可以进行自定义样式的渲染,同时支持数据绑定和数据关系的处理,是一个集成性较强的网格控件。
True DBGrid的缺点在于更为复杂和庞大,需要购买设置许可证,同时也不如VSFlexGrid得到广泛的支持和使用。
二、网格控件的使用在VB编程中,网格控件的使用相对简单,主要分为以下几个方面。
2.1 网格控件的引用网格控件需要在程序中进行引用后才能使用,通常的方法是使用“工具箱”中的“组件”进行引用。
以MSFlexGrid为例,在程序中引用MSFlexGrid的代码如下:Private WithEvents FlexGrid1 As MSFlexGrid这样就可以在程序中使用MSFlexGrid了。
MSFlexGrid表格控件详细说明
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(一次性地对所有列进行设置)。
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控件的常用属性
获得或设置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总行数和总列数的定义: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 标头与表格对齐方式
msflexgrid1 标头与表格对齐方式
在MSFlexGrid控件中,可以通过设置行和列的对齐方式来实现标头与表格的对齐方式。
对于表格内容的对齐方式,可以通过设置列的Alignment属性来实现。
Alignment属性有以下几种取值:
- flexAlignLeft(左对齐)
- flexAlignCenter(居中对齐)
- flexAlignRight(右对齐)
例如,如果想要将第一列的内容左对齐,可以使用以下代码:
```
MSFlexGrid1.ColAlignment(0) = flexAlignLeft
```
对于标头的对齐方式,可以通过设置列的AlignmentHeader属性来实现。
AlignmentHeader属性也有同样的几种取值。
例如,如果想要将第一列的标头左对齐,可以使用以下代码:
```
MSFlexGrid1.ColAlignmentHeader(0) = flexAlignLeft
```
通过设置列的Alignment和AlignmentHeader属性,可以实现标头与表格内容的不同对齐方式。
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 '删除第三行。
msflexgrid控件用法
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控件中的数据在将数据添加到表格之后,可以对表格中的数据进行许多操作,例如,读取单元格数据、排序和过滤数据等。
wincc msflexgrid控件的用法
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方法,用于设置和获取单元格的数据。
MS Flex Grid控件
MS Flex Grid控件是微软的一个网格控件,可以用于显示数据库中的信息,对于一些比较简单的显示方式,还是比较方便的。
加入MS Flex Grid控件控件的方法:在VC中选择Project|Add to Project|Conpenments and Controls 在弹出的对话框中选择Registered ActiveX Controls然后选择Microsoft FlexGrid Control, version 6.0。
系统会提示你加入几个类进入你的工程。
包括四个类:CMSFlexGrid,CRowCursor,COleFont,CPicture;同时在VC的Control面板上会显示出MS Flex Grid控件的图标,可以同其他普通控件一样操作这个控件。
一、引言MSFlexGrid控件是Visual C++中提供的已注册ActiveX控件,它常被用于显示和操作表格式数据,特别是数据库文件的显示及交互操作。
在其他程序的交互界面中,对于不确定数目的同类大批量数据的输入而言,MSFlexGrid是十分有效的。
利用MSFlexGrid可以将输入文件中的数据显示出来并作交互修改,通过功能扩展可将表格数据直接copy到Excel、Word及Origin中的表格内,利用右键菜单实现此功能。
本文编程实现了上述类似功能,并将MSFlexGrid控件的一些调整操作(如行高、列宽、Cell内容的对齐方式等)加以外部按钮化,使其更为方便易用。
二、先行者对MSFlexGrid控件功能的扩充王勇、李延平[1]提出在MSFlexGrid的当前网格单元(Cell)内创建同样尺寸的编辑框(CEdit)覆盖该Cell,并将Cell内的Text传给编辑框,通过此编辑框以实现MSFlexGrid的网格编辑功能。
秦胜[2]提出用信息预解释(PreTranslate)方法,截留编辑框(CEdit)内的ESC键与回车键(Enter)按下消息,以防止在编辑框内不小心按下上述两按键之一时立刻关闭对话框,退出整个程序。
VB-MSFlexGrid控件-4
VB-MSFlexGrid控件-4Col和Row属性(MSHFlexGrid)这两个属性返回或设置MSHFlexGrid中活动单元的坐标。
在设计时不可用。
应用于MSHFlexGrid控件,MSFlexGrid控件。
语法object.Col[=number]object.Row[=number]Col和Row的语法包含以下部分:部分描述object对象表达式,其值是“应用于”列表中的对象numberLong类型值。
它指定了活动单元的位置说明可以用这些属性来指定MSHFlexGrid中的单元,或者找到包含当前单元的那个行或者列。
行和列是从0开始计数的,对于行来说,以顶端为起始,而对于列来说,则以左边为起始。
对这些属性进行设置会自动对RowSel和ColSel进行重置,这样,所选定的就变成了当前单元。
因此,为了指定一个块选定,必须首先对Row和Col进行设置,然后对RowSel和ColSel进行设置。
当前单元的值(由Col和Row的设置值所决定的),就是包含在那个单元中的文本。
可以用T extMatrix属性在不改变已选定的Row和Col属性的情况下,对单元的值进行修改。
请参阅Cols,Rows属性(MSHFlexGrid),ColSel,RowSel属______性,SelChange事件(MSHFlexGrid),Sort属性(MSHFlexGrid),Text属性(MSHFlexGrid),TextMatrix属性,Bands属性(MSHFlexGrid)。
示例在该示例中,将“Here”放到当前单元中,然后将活动单元更改为第3行中的第3个单元,并将“There”放到那个单元中。
可以单击F5键来运行该程序,然后单击网格。
注意:如果您使用MSFlexGrid,请用“MSFlexGrid1”替换“MSHFlexGrid1”。
Private Sub Form1_Load()MSHFlexGrid1.Rows=8MSHFlexGrid1.Cols=5End SubPrivate Sub MSHFlexGrid1_Click()'将文本放到当前单元中。
MSFlexGrid控件
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) = 1500 RowHeight(0) = 300(9)DataSource属性:用于选择数据表,只能通过Data数据源控件选择数据表。
说明,若要用ADO Data控件作为数据源,则应使用MSHFlexGrid控件。
(10)MousePointer属性:用于设置鼠标光标形状,属性取值与光标形状如表8.1所示。
【例8.1】编写程序,定义MSFlexGrid1控件为10行、5列表格,给每一个单元格赋值为Row+Col,其中Row与Col分别表示控件单元格的行号与列号。
msflexgrid.ocx 注册语句
`msflexgrid.ocx` 是Microsoft FlexGrid 控件的一个组件,它是一个用于Windows应用程序的ActiveX 控件,可以用来创建数据网格,用于显示和编辑数据。
在Visual Basic、C++ 或其它支持ActiveX 的编程环境中,你可以在运行时动态注册这个控件。
注册`msflexgrid.ocx` 控件的步骤通常如下:1. 首先确保`msflexgrid.ocx` 文件在你的系统中是存在的,它通常位于`C:\Windows\System32` 目录下,或者在你的开发环境的组件目录中。
2. 打开命令提示符(在Windows 中可以通过按下`Win + R` 键,然后输入`cmd` 并回车来打开)。
3. 使用`regsvr32` 命令来注册控件。
如果您的系统是64 位的,您可能需要使用`regsvr32` 的`/s` 参数和`/i` 参数来注册`msflexgrid.ocx`。
对于32 位的系统,通常使用以下命令之一:对于32 位系统:```regsvr32 C:\Windows\System32\msflexgrid.ocx```或者```regsvr32 /s C:\Windows\System32\msflexgrid.ocx```对于64 位系统:```regsvr32 C:\Windows\SysWOW64\msflexgrid.ocx```或者```regsvr32 /s C:\Windows\SysWOW64\msflexgrid.ocx```4. 注册完成后,您可能需要重启您的计算机或重新启动您的开发环境,以便更改生效。
请注意,如果在注册过程中出现错误,错误信息将有助于诊断问题。
常见的错误包括文件未找到、注册失败等。
如果遇到问题,您可能需要根据错误信息查找相应的解决方案。
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控件)。
MSFlexGrid基本使用
MSFlexGrid基本使用第一篇:MSFlexGrid基本使用1.给FlexGrid控件绑定成员变量:m_FlexGrid。
2.设置行列数m_FlexGrid.SetCols(4);//设置列数m_FlexGrid.SetRows(6);//设置行数3.设置固定行数和固定列数m_FlexGrid.SetFixedRows(1);//设置固定行数为1行m_FlexGrid.SetFixedCols(0);//设置固定列数为0列4.设置列宽、行高m_FlexGrid.SetColWidth(1,1500);//设置列号为1的列宽为1500m_FlexGrid.SetRowHeight(2,300);//设置行号为2的行高为3005.设置文本对齐方式m_FlexGrid.SetColAlignment(1,4);//设置列号为1的文本对齐方式参数对应描述为:0单元内容顶部左对齐。
1单元内容中间左对齐。
对字符串的缺省设置值。
2单元内容底部左对齐。
3单元内容顶部居中。
4单元内容中间居中。
5单元内容底部居中。
6单元内容顶部右对齐。
7单元内容中间右对齐。
对数字的缺省设置值。
8单元内容底部右对齐。
9单元内容一般对齐方式。
对字符串中间左对齐而对数值中间右对齐。
6.设置表头和单元格内容m_FlexGrid.SetTextArray(0,“Head1”);//设置表头(第1列)内容为“Head1”m_FlexGrid.SetTextMatrix(1,1,“Text”);//设置单元格(行号1列号1)内容为“T ext”7.增加一行m_FlexGrid.AddItem(“AddString”,(COleVariant)(3L));//在行号为3的位置增加一行8.合并单元格for(i=0;i<4;i++)m_FlexGrid.SetTextMatrix(5,i,“合计”);//将行号为5、列号从0到4的单元格内容设为相同“合计”m_FlexGrid.SetMergeCells(2);//设置单元格合并方式(下述)m_FlexGrid.SetMergeRow(5,TRUE);//设置要合并的行SetMergeCells函数的参数值如下:0: flexMergeNever默认的选项,就是不合并1: flexMergeFree不规则的合并2: flexMergeRestrictRows行合并3: flexMergeRestrictColumns列合并4: flexMergeRestrictBoth行,列都合并注意只有单元格内容相同时才能进行合并操作。
VSFlexgridMSFlexGrid控件的技术问题
VSFlexgridMSFlexGrid控件的技术问题1,如果想把某一列设置成下拉框中选择,只能写成grid.colcombolist(1) = "a|b|c" 吗?能不能把下拉框中的数据和recordset 或数组绑定。
答案:grid.colcombolist(1)=grid.buildcombolist(rs!abc)2,怎样限定第三列可编辑,其他列不可编辑?答案:Private Sub fg_BeforeEdit(ByVal Row As Long, ByVal Col As Long, Cancel As Boolean)'*******先将设editable=2'限定不可编辑列,如有5列If Col = 0 Then Cancel = TrueIf Col = 1 Then Cancel = TrueIf Col = 2 Then Cancel = TrueIf Col = 4 Then Cancel = TrueIf Col = 5 Then Cancel = TrueEnd Sub3、怎么获得当前单元个的位置,比如某单元个获得焦点,弹出msgbox("你选的是第4行第5列")Answer:Private Sub VSFlexGrid1_Click()Dim a, b As Longa = VSFlexGrid1.Rowb = VSFlexGrid1.ColMsgBox "你选的是" & a & "行" & b & "列"End Sub4,对vsflexgrid进行编辑的时候,让vsflexgrid的某列只能输入数字?Answer:Private Sub CheckData(KeyAscii As Integer)If KeyAscii >= 48 And KeyAscii <= 57 Then Exit Sub '如果是数字退出If KeyAscii <> 8 Then KeyAscii = 0End SubPrivate Sub vsflexgrid_KeyPressEdit(ByVal Row As Long, ByVal Col As Long, KeyAscii As Integer)If col=1 Then '第一列只能输入数字CheckData KeyAsciiEnd IfEnd Sub5,限制某列只能输入数字Answer:Private Sub fg_KeyPressEdit(ByVal Row As Long, ByVal Col As Long, KeyAscii As Integer)Dim Numbers As String '允许输入的字符If fg.Col = 6 Then '第6列Numbers = "1234567890" + Chr(46) + Chr(8)If InStr(Numbers, Chr(KeyAscii)) = 0 ThenKeyAscii = 0End IfEnd IfEnd Sub6,如何指定一列的输入格式例如:显示有小数点后3位(是整数的话显示.000;没有达到3位显示.200(追加0);超过的4舍五入)例如:显示有小数点后3位(是整数的话显示.000;没有达到3位显示.200(追加0);超过的4舍五入)Answer:if fg.col=5 then '第五行for i=1 to fg.rows-1fg.TextMatrix(i,5)=format(fg.TextMatrix(i,5),"##0.000")next iend if7,在一个单元格输入好数字回车,下一单元格(或者下一行第一个)自动获得焦点。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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控件事件。