vb用mshflexgrid表格显示数据,设定鼠标左键选定一行数据,但鼠标移到另一行时,另一行也被选定了。

鼠标点选另一行时,我希望之前选的那个不是被选定的状态,下面是我的代码PrivateSubmshflexgrid1_MouseDown(ButtonAsInteger,Sh... 鼠标点选另一行时,我希望之前选的那个不是被选定的状态,下面是我的代码
Private Sub mshflexgrid1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
If Button = vbLeftButton Then
selseries = MSHFlexGrid1.TextMatrix(MSHFlexGrid1.RowSel, 1)
End If
Dim i As Integer
For i = 1 To MSHFlexGrid1.Cols - 1 '选中整行换颜色
MSHFlexGrid1.Row = MSHFlexGrid1.RowSel
MSHFlexGrid1.Col = i
MSHFlexGrid1.CellBackColor = &HBFBFBF
Next
End Sub
请问如何设计代码?
展开
 我来答
AHKMC
2011-10-01 · 超过13用户采纳过TA的回答
知道答主
回答量:35
采纳率:0%
帮助的人:30万
展开全部
(1)你每点一次需要将整个表的单元格背景色清空一次才能做到你要求的效果,这样太低效,不是好方法;可以使用多个TEXTBOX可实现,也就是你鼠标移动点击一行, TEXTBOX便可见并移动所选单元格的位置,从相应的单元格中读取数值到TEXTBOX中,TEXTBOX颜色随你怎么变都与表格无关了。比如,实现表格控件的单元格类似EXCEL编辑功能,就可以利用TEXTBOX的这种方式做到。
(2)其次,MSHFFLEXGRID的行列选定本来就不需要写什么代码嘛,你在MSHFFLEXGRID上右击,选"属性",就可以设置选择了,你是想整行选择,你只要在“选择模式”下拉框中选择"2——By column"即可。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zx001z7d53
2011-10-01 · TA获得超过2万个赞
知道大有可为答主
回答量:2.4万
采纳率:52%
帮助的人:6035万
展开全部
Private Sub Form_Load()
MSFlexGrid1.Cols = 10
MSFlexGrid1.Rows = 10
MSFlexGrid1.FixedCols = 0
MSFlexGrid1.FixedRows = 0
End Sub

Private Sub MSFlexGrid1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
'On Error GoTo Err_Proc
Dim intCurrCol As Long
intCurrCol = MSFlexGrid1.Col
'单击选择或不选择
If MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 0) = "√" Then
MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 0) = ""
'改变行颜色
For i_Col = 0 To MSFlexGrid1.Cols - 1
MSFlexGrid1.Col = i_Col
MSFlexGrid1.CellBackColor = vbWhite
Next i_Col

Else
MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 0) = "√"
'改变行颜色
For i_Col = 0 To MSFlexGrid1.Cols - 1
MSFlexGrid1.Col = i_Col
MSFlexGrid1.CellBackColor = &H80C0FF
Next i_Col

End If
MSFlexGrid1.Col = intCurrCol
Exit Sub
End Sub
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式