求大神指点,就是代码里的那几个mouseDown、MouseUp什么的- <font color="#ff0000"> private bool mouseStatus = false;</font>
- <font color="#ff0000"> private List<Rectangle> rectList = new List<Rectangle>();</font>
- <font color="#ff0000"> private Point startPoint;</font>
- <font color="#ff0000"> private Point endPoint;</font>
- <font color="#ff0000"> private Rectangle currRect;</font>
- <font color="#ff0000"> private int minStartX, minStartY, maxEndX, maxEndY;</font>
- <font size="6"><b><i><font color="#000000"> private void Form1_</font><font color="#ff0000">MouseDown</font><font color="#000000">(object sender, MouseEventArgs e)</font></i></b></font>
- <font color="#ff0000"> {</font>
- <font color="#ff0000"> mouseStatus = true;</font>
- <font color="#ff0000"> startPoint.X = e.X;</font>
- <font color="#ff0000"> startPoint.Y = e.Y;</font>
- <font color="#ff0000"> }</font>
- <font size="6"><b><i><font color="#000000"> private void Form1_</font><font color="#ff0000">MouseMove</font><font color="#000000">(object sender, MouseEventArgs e)</font></i></b></font>
- <font color="#ff0000"> {</font>
- <font color="#ff0000"> if (mouseStatus)</font>
- <font color="#ff0000"> {</font>
- <font color="#ff0000"> endPoint.X = e.X; endPoint.Y = e.Y;</font>
- <font color="#ff0000"> int realStartX = Math.Min(startPoint.X, endPoint.X);</font>
- <font color="#ff0000"> int realStartY = Math.Min(startPoint.Y, endPoint.Y);</font>
- <font color="#ff0000"> int realEndX = Math.Max(startPoint.X, endPoint.X);</font>
- <font color="#ff0000"> int realEndY = Math.Max(startPoint.Y, endPoint.Y);</font>
- <font color="#ff0000"> minStartX = Math.Min(minStartX, realStartX);</font>
- <font color="#ff0000"> minStartY = Math.Min(minStartY, realStartY);</font>
- <font color="#ff0000"> maxEndX = Math.Max(maxEndX, realEndX);</font>
- <font color="#ff0000"> maxEndY = Math.Max(maxEndY, realEndY);</font>
- <font color="#ff0000"> currRect = new Rectangle(realStartX, realStartY, realEndX - realStartX, realEndY - realStartY);</font>
- <font color="#ff0000"> Rectangle refeshRect = new Rectangle(minStartX, minStartY, maxEndX - minStartX, maxEndY - minStartY);</font>
- <font color="#ff0000"> refeshRect.Inflate(1, 1);</font>
- <font color="#ff0000"> this.Invalidate(refeshRect);</font>
- <font color="#ff0000"> }</font>
- <font color="#ff0000"> }</font>
- <b><i><font size="6"><font color="#000000"> private void Form1_</font><font color="#ff0000">MouseUp</font><font color="#000000">(object sender, MouseEventArgs e)</font></font></i></b>
- <font color="#ff0000"> {</font>
- <font color="#ff0000"> mouseStatus = false;</font>
- <font color="#ff0000"> endPoint.X = e.X; endPoint.Y = e.Y;</font>
- <font color="#ff0000"> int realStartX = Math.Min(startPoint.X, endPoint.X);</font>
- <font color="#ff0000"> int realStartY = Math.Min(startPoint.Y, endPoint.Y);</font>
- <font color="#ff0000"> int realEndX = Math.Max(startPoint.X, endPoint.X);</font>
- <font color="#ff0000"> int realEndY = Math.Max(startPoint.Y, endPoint.Y);</font>
- <font color="#ff0000"> currRect = new Rectangle(realStartX, realStartY, realEndX - realStartX, realEndY - realStartY);</font>
- <font color="#ff0000"> rectList.Add(currRect);</font>
- <font color="#ff0000"> this.Invalidate();</font>
- <font color="#ff0000"> }</font>
- <font size="6"><b><i><font color="#000000"> private void Form1_</font><font color="#ff0000">Paint</font><font color="#000000">(object sender, PaintEventArgs e)</font></i></b></font>
- <font color="#ff0000"> {</font>
- <font color="#ff0000"> Graphics g = e.Graphics;</font>
- <font color="#ff0000"> g.Clear(this.BackColor);</font>
- <font color="#ff0000"> g.DrawRectangle(new Pen(Color.Red, 1), currRect);</font>
- <font color="#ff0000"> foreach (Rectangle rect in rectList)</font>
- <font color="#ff0000"> g.DrawRectangle(new Pen(Color.Red, 1), rect);</font>
- <font color="#ff0000"> }</font>
复制代码
|