65.9K
CodeProject 正在变化。 阅读更多。
Home

在 VB 6 中使用组合框编辑 Flex Grid

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.15/5 (17投票s)

2007年11月15日

CPOL

2分钟阅读

viewsIcon

276118

downloadIcon

10908

使用新的 ActiveX 在 VB 6 中编辑 Microsoft Flex Grid 和组合框。

Screenshot - Imag5.jpg
Form1: 主窗体

Screenshot - Imag6.jpg

Form2: 英语

Screenshot - Imag7.jpg

Form3: 阿拉伯语

引言

使用漂亮的 VB6,我尝试编辑一些类似发票的东西。我发现 Data Grid 不太适合编辑表格,而且 Flex Grid 没有编辑方法。 现在我使用 (MSFlexGrid) 控件、一个隐藏的文本框和一个隐藏的组合框来创建我的 ActiveX 控件。 我将我的 ActiveX 命名为 (VB6Flexgrid)。 我创建一个项目 (prjFlexGrid) 来测试我的控件。 我在 Visual Basic 6 下编写代码。 使用我的 ActiveX 控件,您可以

  • 编辑 Flex Grid 中的任何单元格
  • 删除任何行
  • 删除所有行并从一行开始
  • 向任何列添加组合框,并使用多个组合框
  • 将数据写入任何单元格
  • 从任何单元格读取数据
  • 从网格中读取所有数据

背景

使用我的 ActiveX 控件 (VB6Flexgrid) 时,Flex Grid 从一行开始,就像 Data Grid 控件一样,然后在编辑前一行之后逐行增加。 我的 ActiveX 控件有一些方法和一些属性

方法/属性

定义

示例

ColWidth(anyCol) 以(缇)为单位设置列宽 VB6Flexgrid1.ColWidth(1) = 1500
TextMatrix(anyRow, anyCol) 获取或设置单元格(行,列)的string VB6Flexgrid1.TextMatrix(3, 2) = “VB6”
CellType anyCol, B 如果B = True,则让Column包含组合框 VB6Flexgrid1.CellType 3, True
ComboClear anyCol 清除组合框 VB6Flexgrid1.ComboClear 3
ComboAddItem anyCol, anyString 向组合框添加项目 VB6Flexgrid1.ComboAddItem 3, “Visual Studio”
DelRow 删除当前行 VB6Flexgrid1.DelRow
DelAll 清除网格 VB6Flexgrid1.DelAll

要使用我的 ActiveX (VB6Flexgrid),您必须将文件 *VB6Flexgrid.ocx 和 MicrosoftFlexGrid 控件添加到“工具箱”*,如下所示

  • 单击“工具箱”,然后选择“组件”。
  • 从“组件”对话框中,选择“Microsoft FlexGrid Control 6.0”。
  • 单击“浏览”,然后从保存的位置选择“*VB6FlexGrid.ocx*”ActiveX 控件,然后单击“确定”。

Using the Code

关于列

' Set number of columns:
VB6Flexgrid1.FixedCols = 0 ' if you do not need fixed columns 
VB6Flexgrid1.Cols = 5 ' number of columns
' Set width of column:
VB6Flexgrid1.ColWidth(1) = 1500 ' width in Twip
' Set alignment of column (You can change many using loop)
VB6Flexgrid1.ColAlignmentHeader(1) = flexAlignCenterCenter 
				' alignment of fixed row, column #1 (to Center)
VB6Flexgrid1.ColAlignment(1) = flexAlignLeftCenter ' alignment column #1 (to Left)

关于组合框

' Set combo box at any column:
VB6Flexgrid1.CellType 3, True  ' combo box at column #3
VB6Flexgrid1.ComboClear 3 ' clear this combo
VB6Flexgrid1.ComboAddItem 3, „Visual Studio“ ' add item to this combo

关于单元格

' Send data to any cell:
VB6Flexgrid1.TextMatrix(2, 3) = „VB6“
' Read any cell:
Dim strCell As String
strCell = VB6Flexgrid1. TextMatrix(3, 2)

您可以返回到项目 (prjFlexGrid) 的源文件,以阅读比之前示例更多的内容。

备注

提取文件 *VBFlexGrid.zip 时,您可以找到文件:*..\*VBFlexGrid\ActiveXcontrol\VB6Flexgrid.ocx*,在文件夹中找到测试 ActiveX 控件的项目:*..\* VBFlexGrid*。

此项目有三个窗体

  • Form1:选择语言
  • Form2:对于英语
  • Form3:对于阿拉伯语

Form2Form3 具有相同的控件

  • ActiveX 控件 (VB6Flexgrid1) 添加文件 *VB6Flexgrid.ocx*
  • 按钮控件 (btnDelOne) 删除一行
  • 按钮控件 (btnDelAll) 清除网格
  • 按钮控件 (btnWriteCell) 将数据写入第一个单元格
  • 按钮控件 (btnReadOne) 读取当前单元格
  • 按钮控件 (btnReadAll) 将网格中的所有数据复制到列表框
  • 按钮控件 (btnExit) 关闭窗体
  • 列表框控件 (lstAllData) 保存来自网格的数据

最后的话

我希望本文对您有所帮助,并帮助您创建应用程序。 如果您有任何想法或发现任何问题,请告诉我。 感谢 CodeProject,感谢所有人。

-- Mostafa Kaisoun

© . All rights reserved.