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

使用方法
- 先创建表格大小(例:创建5列10行的表,不包括列名和行名,会自动增加)
mCtrlGrid1.ReSize(5,10)
- 给表格单元设置数据
mCtrlGrid1.SetCell(0,0,"1,1")
mCtrlGrid1.SetCell(1,1,"2,2")
注意,左上角第一个是 0,0 , 参数是:列,行
- 获取表格单元数据
获取的文字= mCtrlGrid1.GetCellText(0,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 '设置单元格焦点
虚表模式
假如表格的数量很大时,设置单元格将会消耗很大的时间,因此可以直接用一个二维数组,不用设置单元格,速度就是你写代码处理二维数组的速度了。
- 首先,在设计属性里,必须勾选虚表模式

- 每次需要显示内容时,会触发事件“检索单元格数据”,然后你设置相关的数据即可
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
评论一下?