GridView鼠标移上某行显示浮动DIV提示信息

本文介绍了一个简单的鼠标跟随效果实现方案,使用JavaScript来捕捉鼠标位置,并更新元素的位置使其跟随鼠标移动。同时介绍了如何通过C#设置网页元素的鼠标悬停及移出事件。

项目需要用到这功能,实现其实很简单,直接上代码--------------------代码很粗糙。

JavaScript:

C#: 

 

 

### C# GridView 控件实现鼠标悬停提示信息始终显示 在 Windows Forms 应用程序中,可以通过自定义 `ToolTip` 类的行为来实现在 `GridView` 上当鼠标悬停时工具提示信息一直保持可见的效果。默认情况下,`ToolTip` 组件会在一定时间后自动隐藏[^1]。 为了达到这个目的,可以创建一个新的类继承于 `ToolTip` 并重写其行为逻辑: ```csharp public class AlwaysVisibleTooltip : ToolTip { private Timer _timer; public AlwaysVisibleTooltip() { InitialDelay = 0; AutoPopDelay = Int32.MaxValue; // 设置为最大值防止自动消失 ReshowDelay = 0; _timer = new Timer(); _timer.Interval = 5000; // 定义多久之后关闭 Tooltip (毫秒), 可选配置 _timer.Tick += OnTimerTick; } protected override void ShowNativeToolTip(string? caption, IWin32Window window) { base.ShowNativeToolTip(caption, window); _timer.Start(); // 显示的时候启动计时器 } private void OnTimerTick(object sender, EventArgs e){ Hide(this); // 到达设定的时间则隐藏 ((Timer)sender).Stop(); } } ``` 对于 `DataGridView` 或者其他类型的 `GridView` 控件,在处理单元格进入事件 (`CellEnter`) 和离开事件 (`CellLeave`) 的时候控制上述自定义 `ToolTip` 对象的显示与隐藏: ```csharp private AlwaysVisibleTooltip toolTip = new AlwaysVisibleTooltip(); // 假设这是你的 DataGridView 实例名为 dataGridView1 dataGridView1.CellMouseHover += DataGridView1_CellMouseHover; dataGridView1.CellMouseLeave += DataGridView1_CellMouseLeave; void DataGridView1_CellMouseHover(object sender, DataGridViewCellEventArgs e) { var cellValue = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value?.ToString(); if (!string.IsNullOrEmpty(cellValue)) { Point ptScreen = dataGridView1.PointToScreen(dataGridView1.CurrentCell.OwningColumn.HeaderCell.Location); toolTip.SetToolTip(dataGridView1, cellValue); toolTip.ShowAlways = true; toolTip.InitialDelay = 0; toolTip.ReshowDelay = 0; toolTip.AutoPopDelay = int.MaxValue; toolTip.Show(cellValue, dataGridView1, ptScreen.X, ptScreen.Y + dataGridView1.CurrentCell.Size.Height); } } void DataGridView1_CellMouseLeave(object sender, EventArgs e) { toolTip.Hide(dataGridView1); } ``` 这段代码实现了当用户的光标停留在某个特定单元格上时会立即弹出对应的提示框,并且只要不开该区域就不会自行消退;一旦离开了当前单元格范围,则立刻收起提示框。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值