【问题标题】:Datagridview Cell ToolTip Delay TimeDatagridview 单元格工具提示延迟时间
【发布时间】:2014-10-02 06:00:08
【问题描述】:

我有一个 DataGridView,它显示学生每节课的分数,在某些时候我应该通过 Tooltip 显示关于该点的一些信息。我想要的是当用户输入特定单元格时,2 秒后工具提示将出现在当前单元格中,将显示 2 秒时间并显示有关该点的信息。我使用了那个代码:

    private void dgwPNotlar_CellMouseEnter(object sender, DataGridViewCellEventArgs e)
    {
        var hucre = dgwPNotlar.CurrentCell;
        var hucre_loc = dgwPNotlar.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, false);

        toolTip1.Show("//Info&" + e.ColumnIndex.ToString() + "&" + e.RowIndex.ToString(), dgwPNotlar, hucre_loc.X, hucre_loc.Y);
    }

我为 ToolTip 设置了 AutomaticDelay 500、AutoPopDelay 2000、InitialDelay 2000 和 Reshow Delay 2000。但是,当我进入 Datagridview 单元格并且不会消失时,工具提示会立即出现。当我检查我的代码时,我看到这个方法被调用了好几次,尽管鼠标仍然停留在单元格中。

我能做什么?

【问题讨论】:

标签: c# datagridview tooltip


【解决方案1】:

如果ToolTip 没有自动显示,那么所有这些“自动”内容都无关紧要。您正在手动显示它,因此没有延迟。如果你想要延迟,那么你需要使用Timer

如果您希望延迟 2 秒,则在 Tick 事件处理程序中,StartInterval 为 2000 的 TimerShowToolTip。您也可以处理网格的CellMouseLeave 事件和Stop 那里的Timer 事件,因此如果用户在延迟结束之前离开该单元格,则在显示之前取消提示。

【讨论】:

  • 你能举个例子吗?
【解决方案2】:

我找到了 DataGridView_CellEnter 事件多次调用的原因。当 Tooltip 显示在单元格上时(位置基于单元格矩形),鼠标指针停留在 ToolTip 上,并且点跟踪器将叠加单元格叠加层和 Tooltip 叠加层。这使得 CellEnter 和 CellLeave 方法被调用了多次。

谢谢大家。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多