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

画图有关问题,鼠标移动时怎么显示图形?多谢!

2013-12-30 
画图问题,鼠标移动时如何显示图形?谢谢!!namespace WindowsFormsApplication1{public partial class Form1

画图问题,鼠标移动时如何显示图形?谢谢!!

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        Point P1 = new Point();
        Point P2 = new Point();
        bool isMouseDown = false;

        private void Form1_MouseUp(object sender, MouseEventArgs e)
        {
            isMouseDown = false;
            DrawTY(this.CreateGraphics(), P1.X, P1.Y, P2.X - P1.X, P2.Y - P1.Y);
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            
        }

        private void Form1_Paint(object sender, PaintEventArgs e)
        {

            Graphics g = e.Graphics;
         
        }

        private void DrawTY(Graphics g, int a,int b,int c,int d )
        {
            GraphicsPath roundedRect = new GraphicsPath();
            roundedRect.AddArc(a, b, c, d, 200, 360);
       

            //从路径中创建区域
            Region pathRegion = new Region(roundedRect);
           // g.FillRegion(new SolidBrush(Color.Blue), pathRegion);
            g.DrawPath(Pens.Blue, roundedRect);

        }

        private void Form1_MouseDown(object sender, MouseEventArgs e)
        {
            if (isMouseDown == false)
            {
                isMouseDown = true;

                P1.X = e.X;
                P1.Y = e.Y;
            }
        }

        private void Form1_MouseMove(object sender, MouseEventArgs e)
        {
            if (isMouseDown == true)
            {

                P2.X = e.X;
                P2.Y = e.Y;
              
                this.Invalidate();
            }
        }
    }
}


已经可以实现画出椭圆。

但是在画的时候,没有出现椭圆,只是鼠标移动的时候,没有图,在鼠标up后,才有图。

请问这个如何解决啊。


[解决办法]
http://www.codeproject.com/Articles/8494/DrawTools
可以参考这个!
[解决办法]
你要想在鼠标移动的时候也出现圆,那么就要在这个函数里 Form1_MouseMove(object sender, MouseEventArgs e) 调用那个画圆的函数而不仅仅只是在up那个函数里调用画圆那个函数
[解决办法]


void Form1_Paint(object sender, PaintEventArgs e)
{
    if (isMouseDown)
    {
        DrawTY(this.CreateGraphics(), Math.Min(P1.X, P2.X), Math.Min(P1.Y, P2.Y), Math.Abs(P2.X - P1.X) + 1, Math.Abs(P2.Y - P1.Y) + 1);
    }
}

热点排行