windowfrom mousemove中显示tooltip

公司做了一个windowform程序,画了一个折线图,然后鼠标经过某个点的时候显示改点的一些信息。刚开始我用一个窗口来实现,发现在弹出窗口的时候显示折现图的界面会闪一下,背景色变得稍淡,还有一个问题字体多少不同,窗口宽度不能随着字体变化而变化。这种问题如果解决不了这种方案肯定不行。后来想到有一个tooltip控件,就是在画图控件上加一个tooltip,然后再该控件的mousemove事件中加上这个提示框的显示。做了这个之后发现tooltip一直再闪,这就导致频繁触发获取当前经过点信息函数,由于刚接手项目,还以为是图在一直刷新进而导致mousemove刷新。后来同事说如果我将mousemove中tooltip.show()去掉之后,就不会一直刷新了。后来一试果然是这样,找原因或者说找解决办法吧。找了半天没有找到原因,所以只能找解决办法了。最终还是这种方案解决的。

 private int x = 0,y=0;

        public override void Control_MouseMove(object sender, MouseEventArgs e)
        {
            if (x != e.X || y != e.Y) {

this.tooltip.show("",this);

x = e.X;
                y = e.Y;

}

posted on 2020-07-16 18:00  流浪法师1  阅读(228)  评论(0编辑  收藏  举报