首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

在 form上可以实现,在panel实现不已,为什么啊

2013-10-04 
在 form上可以实现,在panel实现不了,为什么啊?通过大家的帮助,我已经能够实现图形随着鼠标绘制。但是问题又

在 form上可以实现,在panel实现不了,为什么啊?
通过大家的帮助,我已经能够实现图形随着鼠标绘制。
但是问题又来了:

public partial class Form2 : Form
    {
        Point Form2_MouseMove;

        public Form2()
        {
            InitializeComponent();
        }

        private void Form2_Paint(object sender, PaintEventArgs e)
        {
            Graphics dc = e.Graphics;
            Pen blue = new Pen(Color.Blue, 3);
            dc.DrawRectangle(blue, Form2_MouseMove.X, Form2_MouseMove.Y, 50, 50);      
        }

        private void Form2_MouseMove_1(object sender, MouseEventArgs e)
        {
            Form2_MouseMove.X = e.X;
            Form2_MouseMove.Y = e.Y;
            this.Text = string.Format("鼠标位置:({0},{1})", Form2_MouseMove.X, Form2_MouseMove.Y);
            this.Invalidate();
        }

      


以上可以实现。
以下不能实现:
public partial class Form1 : Form
    {
        Point pt;

        public Form1()
        {
            InitializeComponent();
            
        }

        private void panel1_Paint(object sender, PaintEventArgs e)
        {
            Graphics dc = e.Graphics;
            Pen blue = new Pen(Color.Blue, 3);
            dc.DrawRectangle(blue, pt.X, pt.Y, 50, 50);  
        }

        private void panel1_MouseMove(object sender, MouseEventArgs e)
        {
            pt.X = e.X;
            pt.Y = e.Y;
            this.Text = string.Format("鼠标位置:({0},{1})", pt.X, pt.Y);
            this.Invalidate();
        }

  
    }


是不是panel需要新的坐标体系和新的绘制方法?

谢谢!!
[解决办法]

public partial class Form1 : Form
    {
        Point pt;
 
        public Form1()
        {
            InitializeComponent();
             
        }
 
        private void panel1_Paint(object sender, PaintEventArgs e)
        {
            Graphics dc = e.Graphics;
            Pen blue = new Pen(Color.Blue, 3);
            dc.DrawRectangle(blue, pt.X, pt.Y, 50, 50);  
        }
 
        private void panel1_MouseMove(object sender, MouseEventArgs e)


        {
            pt.X = e.X;
            pt.Y = e.Y;
            this.Text = string.Format("鼠标位置:({0},{1})", pt.X, pt.Y);
            panel1.Invalidate();
        }
 
   
    }

热点排行