在WinForm应用程序中绘制选择区域

时间:2014-03-21 06:45:29

标签: c# winforms

在我的WinForm中,我需要在屏幕上绘制选择区域。用户应该能够在角落或边框上拖动选定的矩形以调整大小。如下:

enter image description here

  

我可以用实心画笔绘制矩形。   从边框或角落拖动时如何使其可调整大小?

private void panel1_MouseDown(object sender, MouseEventArgs e) {
    using (Graphics g = this.panel1.CreateGraphics()) {
        Pen pen = new Pen(Color.Black, 2);
        Brush brush = new SolidBrush(this.panel1.BackColor);

        g.FillRectangle(brush, this.panel1.Bounds); 
        g.DrawRectangle(pen, e.X, e.Y, 20, 20);

        pen.Dispose();
        brush.Dispose();
    }
}

1 个答案:

答案 0 :(得分:0)

我认为您可以使用MouseDown

,而不是使用MouseMove

首先,此事件会检查是否按下了左键:

if(e.Button == MouseButtons.Left)) { 

    //Check for the position of your mouse 
}

现在,您将放置一些if语句,以确保根据您的小调整大小框重绘矩形。每个if将重新计算矩形,删除旧矩形并绘制最新的矩形。 希望这会有所帮助。