VisualFreeBasic控件_mCtrlGrid 表格

2026-1-21 / 0 评论 / 76 阅读

类似办公软件的表格功能,只是简化很多。支持虚表。

使用方法

  1. 先创建表格大小(例:创建5列10行的表,不包括列名和行名,会自动增加)
mCtrlGrid1.ReSize(5,10)   
  1. 给表格单元设置数据
  mCtrlGrid1.SetCell(0,0,"1,1") 
  mCtrlGrid1.SetCell(1,1,"2,2") 

注意,左上角第一个是 0,0 , 参数是:列,行

  1. 获取表格单元数据
获取的文字= mCtrlGrid1.GetCellText(0,1) 
  1. 单元格修改更新
    当用户在单元格修改数据后,需要在“结束标签编辑”事件里,设置单元格
Function Form1_mCtrlGrid1_MC_GN_EndLabelEditW(hWndForm As hWnd, hWndControl As hWnd, NMG As MC_NMGDISPINFOW)As Long

  mCtrlGrid1.SetCell(NMG.wColumn,NMG.wRow,*NMG.cell.pszText) 
   Function = FALSE ' 返回 TRUE 禁止编辑
End Function

修改列标题和行标题

标题必须在设计属性里设置,运行时,不可以改变。

列标题设计属性设置为“自定义标题”,才可以自己设置列标题

  mCtrlGrid1.SetCell(0,MC_TABLE_HEADER,"列表名1") 
  mCtrlGrid1.SetCell(1,MC_TABLE_HEADER,"列表名2") 
  mCtrlGrid1.SetCell(2,MC_TABLE_HEADER,"列表名2") 

行标题设计属性设置为“自定义标题”,才可以自己设置行标题

  mCtrlGrid1.SetCell(MC_TABLE_HEADER,0,"行表名1") 
  mCtrlGrid1.SetCell(MC_TABLE_HEADER,1,"行表名2") 
  mCtrlGrid1.SetCell(MC_TABLE_HEADER,2,"行表名2") 

常用功能

   mCtrlGrid1.TableClear(0) '清除全部表格中的文字
   mCtrlGrid1.GetColumnCount '获取表格的列数。
   mCtrlGrid1.GetRowCount '获取表格的行数。
   mCtrlGrid1.GetFocusedCell '获取单元格焦点
   mCtrlGrid1.GetSelection '获取选择。
   mCtrlGrid1.SetFocusedCell '设置单元格焦点
   mCtrlGrid1.SetFocusedCell '设置单元格焦点

虚表模式

假如表格的数量很大时,设置单元格将会消耗很大的时间,因此可以直接用一个二维数组,不用设置单元格,速度就是你写代码处理二维数组的速度了。

  1. 首先,在设计属性里,必须勾选虚表模式
  2. 每次需要显示内容时,会触发事件“检索单元格数据”,然后你设置相关的数据即可
Sub Form1_mCtrlGrid1_MC_GN_GetDispInfoW(hWndForm As hWnd, hWndControl As hWnd, NMG As MC_NMGDISPINFOW)
'  NMG.wColumn  As WORD  列
'  NMG.wRow     As WORD  行
'  NMG.cell.pszText     As WString Ptr   单元格文本
'  NMG.cell.cchTextMax  As Integer       文本字符数
'  NMG.cell.lParam      As LPARAM        用户数据
'  NMG.cell.dwFlags     As DWORD         单元格标志 (对齐标记)
End Sub

评论一下?

OωO
取消