我再winfrm上有一个panel1我想鼠标移动的时候。在鼠标移动的位置写一个字符串,比如写 “士大夫似的发生地方",我应该怎么做。字符串不要压盖。谢谢

解决方案 »

  1.   


    panel1里放一个label1,label1.Text = "士大夫似的发生地方";label1.Visible = false;然后在panel1的MouseClick写:
    private void panel1_MouseClick(object sender, MouseEventArgs e)
    {
        label1.Left = e.X;
        label1.Top = e.Y;
        label1.Visible = true;
    }
      

  2.   

    在鼠标开始移动的位置上新建一个Label,作为Label起点,具体代码如下
    bool flag = false;
            private void Form1_MouseMove(object sender, MouseEventArgs e)
            {
                if (flag == false)
                {
                    Point point = new Point(e.X, e.Y);
                    Label label = new Label();
                    label.Location = point;
                    label.Text = "士大夫似的发生地方";
                    label.Parent = panel;
                    flag = true;
                }
            }
      

  3.   

    补充一下 flag 是为了不重复,只运行一次
      

  4.   

    看错了,是写在MouseMove事件里
    private void panel1_MouseMove(object sender, MouseEventArgs e)
    {
        label1.Left = e.X;
        label1.Top = e.Y;
        label1.Visible = true;
    }
      

  5.   


      private void panel1_MouseMove(object sender, MouseEventArgs e)
            {          
             
                    label1.Left = e.X+8;
                    label1.Top = e.Y+8;
                    label1.Parent = panel1;
                    label1.Visible = true; ;
                    label1.Text = "csdn";                  }
      

  6.   

    可以用ToolTip控件,把时间设置为0就可以了。
      

  7.   

                this.panel1.Update();
                this.panel1.Invalidate();            System.Drawing.Pen myPen =
                    new System.Drawing.Pen(System.Drawing.Color.OrangeRed);
                System.Drawing.Font myFont =
                    new System.Drawing.Font("仿宋", 8);
                SolidBrush brush =
                    new SolidBrush(Color.Black);            gf.DrawString("abcdefg", myFont, brush, pt);这样可以实现。如果写的东西少的话可以,如果数据大,可能会很闪。
      

  8.   

    ToolTip控件,把时间设置为0就可以了。
      

  9.   

    ToolTip控件,把时间设置为0就可以了。
      

  10.   

    总结如下:
    1. 可以用ToolTip控件,把时间设置为0就可以了。
    2. 用MouseMove事件
    private void panel1_MouseMove(object sender, MouseEventArgs e)
    {          
             
                    label1.Left = e.X+8;
                    label1.Top = e.Y+8;
                    label1.Parent = panel1;
                    label1.Visible = true; ;
                    label1.Text = "csdn";          
    }
    3.  使用System.Drawing
                this.panel1.Update(); 
                this.panel1.Invalidate();             System.Drawing.Pen myPen = 
                    new System.Drawing.Pen(System.Drawing.Color.OrangeRed); 
                System.Drawing.Font myFont = 
                    new System.Drawing.Font("仿宋", 8); 
                SolidBrush brush = 
                    new SolidBrush(Color.Black);             gf.DrawString("abcdefg", myFont, brush, pt);