在vb6中要显示数据虽然有datagrid、msflexgrid、mshflexgrid、vsflexgrid、True dbgrid7.0 可选,不过我在工作中用的最多的还是MSHFlexGrid,以下我会常分享一些使用这个控件的技巧、方法代码,保证拿了就可以用。

1、使用MSHFlexGrid的FormatString属性可以做到一次设置行标题和列标题
 
Dim sTitle As String
 
sTitle = "<Name |<Address |<Telephone |<Social Security>"
sTitle = sTitle + ";|Robert|Jimmy|Bonzo|John Paul"
 
MSHFlexGrid.FormatString = sTitle
 
 
    Dim sTitle As String  '列标题
    '设置数据源
    Set msh_Data.DataSource = AllRs
    msh_Data.Refresh
 
    '///解决不能单击鼠标指向行///
    If msh_Data.Rows > 1 Then
        msh_Data.FixedRows = 0
        msh_Data.FixedRows = 1
    End If
    
    With msh_Data
    
        '填充左边记录行数
        .TextMatrix(0, 0) = " 序号"
        
        Dim i As Long
        For i = .FixedRows To .Rows - .FixedRows
            .TextMatrix(i, 0) = i
        Next i
        
        .RowHeight(0) = 600  '设置首行也即标题栏高度
        
        '单击选择整行
        .FocusRect = flexFocusNone
        .SelectionMode = flexSelectionByRow
        'msh_Data.BackColorSel = vbYellow
        '固定第一列,不然再移动下一列的时候就会自动跳到最后一列了
        .Col = 1
        .FormatString = sTitle  '设置列标题内容
        .ColWidth(0) = 0
        .ColWidth(1) = 600
        
        
    End With
 
    '刷新后选取首行
    msh_Data.Row = msh_Data.FixedRows
    msh_Data.RowSel = msh_Data.FixedRows
    msh_Data.Col = 0
    msh_Data.ColSel = msh_Data.Cols - 1
 
     '刷新后选取最后一行
    MSFlexGrid1.Row = MSFlexGrid1.Rows - MSFlexGrid1.FixedRows
    MSFlexGrid1.RowSel = MSFlexGrid1.Rows - MSFlexGrid1.FixedRows
    MSFlexGrid1.Col = 0
    MSFlexGrid1.ColSel = MSFlexGrid1.Cols - 1
 

'禁止mshflexgrid选择多行记录

'第一种方法
Private Sub MSHFlexGrid1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
  If MSHFlexGrid1.RowSel <> MSHFlexGrid1.Row Then MSHFlexGrid1.RowSel = MSHFlexGrid1.Row
End Sub

'第二种方法

Private Sub msh_Data_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

If msh_Data.MouseRow = 0 Then Exit Sub

With msh_Data
.Row = .MouseRow
CURRENTROW = .Row
.Col = 0 '如果是0则可以不选择多行
.ColSel = .Cols - 1
End With

End Sub

Private Sub msh_Data_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)

If msh_Data.MouseRow = 0 Then Exit Sub

With msh_Data
.RowSel = CURRENTROW
.ColSel = .Cols - 1
End With

End Sub

 
 
 
 
 

VB6-表格控件MSHFlexGrid 实用代码的更多相关文章

  1. k/3cloud表格控件块粘贴代码逻辑

    大家可以在表单插件EntityBlockPasting事件中自己处理,然后将cancel设置为true.以下代码可以参考一下,插件代码中需要将其中一些属性或方法修改,例如this.BusinessIn ...

  2. SNF快速开发平台MVC-EasyUI3.9之-DataGrid表格控件如何增加右键菜单

    如题,我们在项目开发当中会遇到需要,表格控件增加右键菜单的使用. 下面我们就以SNF框架增加右键菜单步骤如下: 1.在加载页面当中增加如下菜单定义 <div id="mm" ...

  3. QRowTable表格控件-支持hover整行、checked整行、指定列排序等

    目录 一.开心一刻 二.嘴一嘴 三.效果展示 四.浅谈实现 五.自定义数据源 1.data函数 2.flags函数 六.自定义视图 1.目的 2.问题分析 七.测试 八.相关文章 原文链接:QRowT ...

  4. QRowTable表格控件(二)-红涨绿跌

    目录 一.开心一刻 二.概述 三.效果展示 四.任务需求 五.指定列排序 六.排序 七.列对其方式 八.相关文章 原文链接:QRowTable表格控件(二)-红涨绿跌 一.开心一刻 一天,五娃和六娃去 ...

  5. QRowTable表格控件(三)-效率优化之-合理使用QStandardItem

    目录 一.开心一刻 二.概述 三.效果展示 四.QStandardItem 1.QStandardItem是什么鬼 2.性能分析 3.QStandardItem使用上的坑 五.相关文章 原文链接:QR ...

  6. QTableView表格控件区域选择-自绘选择区域

    目录 一.开心一刻 二.概述 三.效果展示 四.实现思路 1.绘制区域 2.绘制边框 3.绘制 五.相关文章 原文链接:QTableView表格控件区域选择-自绘选择区域 一.开心一刻 陪完客户回到家 ...

  7. QRowTable表格控件(四)-效率优化之-优化数据源

    目录 一.开心一刻 二.问题分析 三.重写数据源 1.自己存储数据 2.重写data接口 四.比较 五.相关文章 原文链接:QRowTable表格控件(四)-效率优化之-优化数据源 一.开心一刻 一程 ...

  8. QRowTable表格控件(五)-重写表头排序、支持第三次单击恢复默认排序

    目录 一.原生表格 二.效果展示 三.实现方式 1.排序列定制 2.排序交互修改 四.相关文章 原文链接:QRowTable表格控件(五)-重写表头排序.支持第三次单击恢复默认排序 一.原生表格 开发 ...

  9. Spread.NET 表格控件 V12.1 正式发布

    Spread.NET 表格控件 V12.1 正式发布 加入动态数组,让公式运算更具效率 Spread.NET 是一个在功能和布局上与 Excel 高度类似的 .NET表格控件,目前已广泛应用于财务.预 ...

随机推荐

  1. C 栈实例

    就近匹配: 应用1:就近匹配 几乎所有的编译器都具有检测括号是否匹配的能力 如何实现编译器中的符号成对检测? #include <stdio.h> ][]; ]; p = a[]; ; 算 ...

  2. Oracle读取和修改数据块的过程 专家

    http://blog.itpub.net/18841027/viewspace-1649618/

  3. careercup-C和C++ 13.7

    13.7 写一个函数,其中一个参数是指向Node结构的指针,返回传入数据结构的一份完全拷贝. Node结构包含两个指针,指向另外两个Node. C++实现代码: typedef map<Node ...

  4. Jordan Lecture Note-5: Kernels

    Kernels 我们首先来回顾kernel函数的定义:一个函数$K(x,y)$为kernel函数当且仅当对$\forall g, \int K(x,y)g(x)g(y)dxdy\geq 0$成立.另外 ...

  5. QT5中如何自定义窗口部件

    提升法 eg.(定义一个新的QLable部件)1.定义一个类class Label : public base, public QLabel //可以支持多重继承2.在qt creator中打开ui编 ...

  6. vb.net写的odbc连接dsn数据源和ole链接oracle的小例子

    最近由于工作需要开始接触vb2010,也叫vb.net.相比vb6.0有面向对象编程的优势.同时接触一门新语言,要更快的实际应用起来,链接数据库是必不可少的.之前用vba写过一个售书工具,正好可以拿来 ...

  7. Android 自学之列表选择框Spinner

    列表选择框(Spinner)与Swing编程里面的Spinner不同,这里的Spinner其实就是一个列表选项框. Spinner是ViewGroup的间接子类,因此他也可作为容器使用. Spinne ...

  8. logstash input jdbc连接数据库

    示例 以下配置能够实现从 SQL Server 数据库中查询数据,并增量式的把数据库记录导入到 ES 中. 1. 查询的 SQL 语句在 statement_filepath => " ...

  9. 用expect做自动应答脚本

    Expect是一个用来实现自动交互功能的软件套件 (Expect [is a] software suite for automating interactive tools).使用它系统管理员可以创 ...

  10. linux modelsim multicore(multithread)

    in file modelsim.ini, set WLFUseThreads = 1