mshflexgrid的行列计数问题
各位大侠:
你们好,先提前给大家拜年了。祝大家新年快乐,心想事成!
有个问题比较困扰我:
在使用mshflexgrid控件时,用到了双击事件,在这个事件过程中,需要判断双击了哪行哪列,据我所知,这个控件的行列计数应该都是从0开始吧,而这个0是不是应该从固定行列算起(程序中我设置了一个固定行和一个固定列)?但我在调试程序时发现双击固定行列(这时是不是应该算是第0行0列呀?)时也会执行操作(我的代码是当行列值大于等于1时才允许执行语句),不知为什么?哪位大侠能给我个圆满的解答,尽量详细些,最好有代码。谢谢!!!
[解决办法]
不知道你代码怎么获取当前行或列的,下面这样应该没问题吧:
Private Sub MSHFlexGrid1_Click() Dim myRow As Long Dim myCol As Long myRow = MSHFlexGrid1.MouseRow myCol = MSHFlexGrid1.MouseCol If myRow = 0 Or myCol = 0 Then Exit Sub MsgBox MSHFlexGrid1.TextMatrix(myRow, myCol) End Sub
[解决办法]
Private Sub Form_Load()MSHFlexGrid1.Cols = 10MSHFlexGrid1.Rows = 10For i = 0 To MSHFlexGrid1.Rows - 1For j = 0 To MSHFlexGrid1.Cols - 1MSHFlexGrid1.TextMatrix(i, j) = i * jNextNextEnd SubPrivate Sub MSHFlexGrid1_DblClick()MsgBox "行数=" & MSHFlexGrid1.Row & " " & "列数=" & MSHFlexGrid1.ColEnd Sub
[解决办法]
private sub mshflextgrid_dblclick() with mshfextgrid if .col>0 then if .row>0 then '其他执行语句 end if end if end withend sub