1、MSHFlexGrid控件怎样才能让它只能选择一行,
而不能同时选择多行??
2、MSHFlexGrid控件设置了AllowUserResizing =flexResizeBoth
怎样判断鼠标双击列尾(鼠标变成可移动列的时候)
就是像EXCEL一样双击两列时自动调整列宽
而不能同时选择多行??
2、MSHFlexGrid控件设置了AllowUserResizing =flexResizeBoth
怎样判断鼠标双击列尾(鼠标变成可移动列的时候)
就是像EXCEL一样双击两列时自动调整列宽
Option Explicit
Private Sub Form_Load()
Dim i As Integer, j As Integer
With MSHFlexGrid1
.Rows = 10
.Cols = 4
For i = 1 To 9
.TextMatrix(i, 0) = "第 " & i & " 行"
For j = 1 To 3
.TextMatrix(0, j) = "第 " & j & " 列"
.TextMatrix(i, j) = i & "," & j
Next
Next
.SelectionMode = flexSelectionByRow
.BackColorSel = vbGreen
.ForeColorSel = vbRed
End With
End Sub
Private Sub MSHFlexGrid1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
With MSHFlexGrid1
.Row = .MouseRow
.Col = 0
.ColSel = .Cols - 1
End With
End Sub
单击的时候是选择一行,
但只要鼠标拖动也是可以选择多行的。
是不是哪里整错了呀,我试验了northwolves(狼行天下)的代码,的确是你要求的效果
^_^
If MSHFlexGrid1.RowSel <> MSHFlexGrid1.Row Then MSHFlexGrid1.RowSel = MSHFlexGrid1.Row
End Sub
Dim n, n1 As Integer
n = Len(MSHFlexGrid1.TextMatrix(1, 1)) '第1行第1列网格中文本的宽度
n1 = Len(MSHFlexGrid1.TextMatrix(1, 2)) '第2行第2列网格中文本的宽度MSHFlexGrid1.ColWidth(1) = n * 200 '当网格中为汉字时
MSHFlexGrid1.ColWidth(2) = n1 * 98 '当网格中为字符时End Sub你可以通过循环先求出网格中各列的最大宽度,然后再进行设置