代码都是后台的,折线点鼠是用DrawEllipse和FillEllipse,在折线点边上有数值,是用drawstring画的,现在想实现当鼠标划过数值时显示时间的效果,不知道有没有什么办法?
求大神们解答!!!!!

解决方案 »

  1.   

    简单说一下。
    你在画数值的时候可以把该数值所处的Rectange存下来
    每隔一定时间判断鼠标位置是否在该Rectange里面
      

  2.   

    如果你的数值没有特殊要求,其实可以做成Label的,这样就可以使用基于消息模式的事件了。
      

  3.   

    假设你绘制在Panel上,绘制时记录一组需要显示时间的区域和值监听Pannel的MouseMove事件,一旦鼠标进入记录区域,取出对应的值,然后ShowToolTip
      

  4.   

            Rectangle _rect;        private void Form1_Paint(object sender, PaintEventArgs e)
            {
                Graphics g = e.Graphics;            Point p = new Point(100, 100);            string str = "Test1001";
                Font font = new Font("宋体", 12);
                SizeF s = g.MeasureString(str, font);
                _rect = new Rectangle(p, new Size((int)s.Width, (int)s.Height));            g.DrawString(str, font, Brushes.Red, p);
            }        private void Form1_MouseMove(object sender, MouseEventArgs e)
            {
                Point p = new Point(e.X, e.Y);
                if (_rect.Contains(p))
                {
                    MessageBox.Show("Test");
                }
            }