using System;
using System.Windows.Forms;
namespace DataGridViewCellHoverDelay
{
public partial class Form1 : Form
{
private Timer cellHoverTimer = new Timer();
private bool isHovering = false;
private DataGridViewCell hoveredCell = null;
public Form1()
{
InitializeComponent();
dataGridView1.CellMouseEnter += DataGridView1_CellMouseEnter;
dataGridView1.CellMouseLeave += DataGridView1_CellMouseLeave;
cellHoverTimer.Interval = 500; // 半秒,单位是毫秒
cellHoverTimer.Tick += CellHoverTimer_Tick;
}
private void DataGridView1_CellMouseEnter(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex >= 0 && e.ColumnIndex >= 0)
{
isHovering = true;
hoveredCell = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex];
cellHoverTimer.Start();
}
}
private void DataGridView1_CellMouseLeave(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex >= 0 && e.ColumnIndex >= 0)
{
isHovering = false;
cellHoverTimer.Stop();
hoveredCell = null;
}
}
private void CellHoverTimer_Tick(object sender, EventArgs e)
{
cellHoverTimer.Stop();
if (isHovering && hoveredCell != null)
{
// 在此处添加您想要执行的代码,例如触发事件或显示信息
MessageBox.Show($"单元格悬浮半秒: 行 {hoveredCell.RowIndex}, 列 {hoveredCell.ColumnIndex}");
}
}
}
}