请教MSHFlexGrid控件鼠标事件的相关问题,请高手帮助

歪歪 2004-11-30 12:30:22
MSHFlexGrid控件中的一个单元格,怎么让它有mouseout事件

我要实现如下功能,请高手完善:
Private Sub MSHFlexGrid1_LeaveCell() '鼠标离开单元格时候

lable1.caption = "离开了单元格?" '?显示离开单元格的row和col标识

End Sub

Private Sub MSHFlexGrid1_MouseMove(???) '鼠标移动到一个单元格时候

lable1.caption = "当前单元格是?" '?显示当前单元格的row和col标识

End Sub

'===============================================
就是实现:当鼠标移动到一个单元格的时候显示这个单元格的row和col标识,离开的时候在次显示离开的这个单元格的标识
...全文
213 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Abyss-Xu 2004-11-30
  • 打赏
  • 举报
回复
你可以在判断中加入代码呀
Private Sub MSHFlexGrid1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
if MSHFlexGrid1.MouseCol=4 and MSHFlexGrid1.MouseRow=5 then
.....代码
end if
End Sub


LeaveCell 事件当前活动单元变更到一个不同的单元之前立即发生。

EnterCell 事件当前活动单元更改到一个不同单元时发生。

RowColChange 事件 (MSHFlexGrid)当前活动单元更改到不同单元时发生。

下列事件顺序发生:首先是 LeaveCell、接着是EnterCell、最后是 RowColChange。当用户单击一个新的单元时 RowColChange事件发生。用户拖动一个选择经过 MSHFlexGrid 时不发生。


SelChange 事件 (MSHFlexGrid)

当选定的范围更改到一个不同的单元或单元范围时发生。

语法

Private Sub object_SelChange()

SelChange 事件的语法包含如下部分:

部分 描述

object 一个对象表达式,其值为“应用于”列表中的一个对象

说明

当用户单击一个新的单元并拖动来选择一个新范围的单元或者是通过使用箭头键同时按下并保持 SHIFT 键来选择一定范围单元时,SelChange 事件发生。这一事件当用户拖动选择经过 MSHFlexGrid 时不发生。这一事件可以通过使用 Row,Col,RowSel 或 ColSel 属性编程更改选择的区域发生。



歪歪 2004-11-30
  • 打赏
  • 举报
回复
谢谢 tztz520(午夜逛街) 我加了个timer控件,实现了
Private Sub Timer1_Timer()
Label1.Caption = "列号" + CStr(MSHFlexGrid1.MouseCol) + "行号:" + CStr(MSHFlexGrid1.MouseRow)
End Sub

但是如果我有很多(十几个)MSHFlexGrid1控件,不是要加很多timer控件了吗,难道她自身就没有鼠标移动的事件吗,请高手继续。
歪歪 2004-11-30
  • 打赏
  • 举报
回复
tztz520(午夜逛街)

我想或许是我没说的清楚,我是说判断鼠标离开和移动到单元格的事件,而不是取得当前活动的单元格

如:
Private Sub msdg1_EnterCell()
Label1.Caption = "ÁÐÊÇ:" + CStr(msdg1.Col) + "ÐÐÊÇ:" + CStr(msdg1.Row)
End Sub

Private Sub msdg1_LeaveCell()
Label1.Caption = "ÁÐÊÇ:" + CStr(msdg1.Col) + "ÐÐÊÇ:" + CStr(msdg1.Row)
End Sub

但是它是点击后的事件,我要实现的是鼠标移动到其中一个单元格的事件
歪歪 2004-11-30
  • 打赏
  • 举报
回复
谢谢楼上的,看哈,解决就结帖
tztz520 2004-11-30
  • 打赏
  • 举报
回复
MSHFlexGrid1.MouseCol就是当前的鼠标所在的列
MSHFlexGrid1.MouseRow就是当前的鼠标所在的行.

你要以在MSHFlexGrid1_MouseMove事件中判断的.
歪歪 2004-11-30
  • 打赏
  • 举报
回复
先谢了
歪歪 2004-11-30
  • 打赏
  • 举报
回复
ok解决,立马结帖了,再次谢谢楼上两位
歪歪 2004-11-30
  • 打赏
  • 举报
回复
在看哈,谢谢
tztz520 2004-11-30
  • 打赏
  • 举报
回复
Private Sub MSHFlexGrid1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
Label1.Caption = "列号" + CStr(MSHFlexGrid1.MouseCol) + "行号:" + CStr(MSHFlexGrid1.MouseRow)
End Sub

'可以把代码写在MSHFlexGrid1_MouseMove事件中

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧