ZedGraph中的ToolTip不断刷新并使用大量CPU

时间:2012-04-14 16:37:03

标签: winforms zedgraph

我正在使用ZedGraph来展示日本蜡烛。我设置GraphPane.isShowPointValue = true,但是当我在蜡烛上移动鼠标时,工具提示会令人耳目一新。

我发现当显示工具提示时,CPU时间总是超过50%。

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:2)

当用户开始迁移到Win 7时,我在几年前为Win XP开发的应用程序遇到了同样的问题。

上面提到的路径对我没有帮助,所以我写了快速而肮脏的解决方法:

    double prevMouseX = 0; // for storing  previos cursor position
    double prevMouseY = 0; //  

    private bool ZedGraphControl1MouseMoveEvent(ZedGraphControl sender, MouseEventArgs e)
    {

               PointF mousePt = new PointF( e.X, e.Y );
               GraphPane pane = sender.MasterPane.FindChartRect( mousePt );

               if ( pane != null ) 
               {
                  double x, y;
                  pane.ReverseTransform( mousePt, out x, out y );

                  if ((x == prevMouseX) && (y == prevMouseY))                      
                  {                                                                 
                      // Do nothing if the mouse position didn't change      
                      return false;                                      
                  }                                                      
                  else {                                                 
                      prevMouseX = x;                                   
                      prevMouseY = y;                                    
                  }                                                     

                  // Our code for toolTip goes here              

                  ...

答案 1 :(得分:2)

此时有一个更新版本的ZedGraph解决了这个问题。 目前v5.1.7 https://www.nuget.org/packages/ZedGraph/

答案 2 :(得分:1)

请看一下,此链接中描述的补丁可能会解决问题:

http://sourceforge.net/tracker/?func=detail&aid=3061209&group_id=114675&atid=669144