MSFlexGrid控件的相关介绍

本文介绍了MSFlexGrid控件的使用,包括如何添加、操作表格数据,如插入背景图片、文本,调整行列,以及判断滚动条、动态增删列等。此外,还提供了设置单元格对齐、获取选中行和调整列宽的代码示例。
摘要由CSDN通过智能技术生成

   在工程部件控件中选择MicrosoftFlexGrid Control version 6.0 可以添加MSFlexGrid控件。

  它作用是显示和操作表格数据,对包含字符串和图片的表格提供灵活的排序、插入数据和格式编排功能,当与Data控件绑定时,就只显示只读数据。可在其中任何单元放置文本、图片或两者,Row属性确定其列数,Col确定其行数要在单元中显示多行文本,需增大宽度(ColWidth属性)或行高度(ColHeight

 

  下面是有关它的个别具体代码操作:

1.MSFlexGrid中取某一单元格数据:

Private Sub MSFlexGrid1_Click() 

MsgBoxMSFlexGrid1.TextMatrix(MSFlexGrid1.Row, MSFlexGrid1.Col), vbOKOnly,"提示消息"

End Sub 

 

2.在单元格中插入背景图片:

Set MSFlexGrid.CellPicture=LoadPicture("图片物理位置")

 

3.在单元格中插入文本:

MSFlexGrid.textMatrix(Col,Row)="文本"

 

4添加新的一行:(AddItem方法)

Dim row asstring

row="AAA" & btab &"bbb"

MSFlexGrid1.addItem row

   5.怎么实现MSFlexGrid控件单行背景为白色,双行为蓝色(或其他颜色):

Dim I asInteger

With MSFlexGrid1

.AllowBigSelection=True   '设置网格样式

.FillStyle=flexFillRepeat

For i=0 To.Rows-1

 .Row = i: .Col = .FixedCols  

 .ColSel = .Cols() - .FixedCols - 1  

  If i Mod 2 = 0 Then  

      .CellBackColor = &HC0C0C0   浅灰

  Else  

      .CellBackColor = vbBlue         兰色

  

   End If  

        Next i  

End With

 

6.MSFlexGrid控件如何移到最后一行

  

MSFlexGrid1.TopRow = MSFlexGrid1.Rows 1  

 

7.如何判断msflexgrid有无滚动条

  

Declare Function GetScrollRange Lib "user32" (ByVal hWnd As Long, ByVal nBar As Long, lpMinPos As Long, lpMaxPos As Long) As Long  

 

Public Const SB_HORZ = &H0  

Public Const SB_VERT = &H1

 

Public Function VsScroll(MshGrid As MSHFlexGrid) As Boolean          判断水平滚动条的可见性 

Dim i As Long  

VsScroll = False  

i = GetScrollRange(MshGrid.hWnd, SB_HORZ, lpMinPos, lpMaxPos)  

If lpMaxPos <> lpMinPos Then VsScroll = True  

End Function  

 

Public Function HeScroll(MshGrid As MSHFlexGrid) As Boolean          判断垂直滚动条的可见性 

Dim i As Long  

HeScroll = False  

i = GetScrollRange(MshGrid.hWnd, SB_VERT, lpMinPos, lpMaxPos)  

If lpMaxPos <> lpMinPos Then HeScroll = True  

End Function  

 

8.程序运行时,想动态增加MSFlexgrid的列数

 

例:在第2列后插入一列

 

Private Sub Form_Load()  

Me.MSHFlexGrid1.Cols = 5  

MSHFlexGrid1.Rows = 2  

For i = 0 To Me.MSHFlexGrid1.Cols - 1  

Me.MSHFlexGrid1.TextMatrix(0, i) = i  

Me.MSHFlexGrid1.TextMatrix(1, i) = i  

Next  

End Sub  

 

Private Sub Command1_Click()  

Me.MSHFlexGrid1.Cols = Me.MSHFlexGrid1.Cols + 1  

Me.MSHFlexGrid1.ColPosition(5) = 3  

End Sub  

 

 

9.请教MSFlexGrid中的对齐功能的使用

 

设置MSFlexGrid1.ColAlignment(index)=n  

 

 

10.得到MSFlexGrid控件中当前选中的一行

 

msflexgrid1.row sel就是当前选中行

  

 

 

11.如何通过代码调节列宽度

  

msflexgrid1.colwidth(i)=4000

 

 

 

 

方法:

OLEDrag方法(ActiveX控件),Refresh方法(ActiveX控件),RemoveItem方法(MSHFlexGrid),AddItem方法(MSHFlexGrid),Clear方法(MSHFlexGrid),SelFocus方法,Drag方法,Move方法,ZOrder方法,ShowWhatsThis方法。

 

MSFlexGrid特有事件

※注1MSFlexGrid控件的特有事件全部是不带参数的,要注意与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_FUNCpFunc)

 

AddModeSettings 属性

常数

描述

flexNoAddNew

0

当前单元不在最后行中,并且没有 AddNew 操作处于待决。

flexAddNewCurrent

1

当前单元在最后一行,但没有 AddNew 操作处于待决。

flexAddNewPending

2

当前单元在倒数第二行。这是是通过 MSHFlexGrid 用户接口由用户初始化一个待决的 AddNew 操作的结果,或者是编程地设置一个列的 Value  Text 属性的结果。

AllowUserResizing属性

常数

描述

flexResizeNone

0

评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值