【发布时间】:2011-01-27 09:05:43
【问题描述】:
我想知道如何在 C# 中绘制矩形并将其拖放到页面中,我的代码来绘制它,但我无法拖放它。
public partial class Form1 : Form
{
public bool drag = false;
int cur_x, cur_y;
Rectangle rec = new Rectangle(10, 10, 100, 100);
public Form1()
{
InitializeComponent();
}
protected override void OnPaint(PaintEventArgs r)
{
base.OnPaint(r);
Graphics g = r.Graphics;
//g.DrawRectangle(Pens.Black, rec);
g.FillRectangle(Brushes.Aquamarine, rec);
}
private void recmousedown(object sender, MouseEventArgs m)
{
if (m.Button != MouseButtons.Left)
return;
rec = new Rectangle(m.X, m.Y,100,100);
drag = true;
cur_x = m.X;
cur_y = m.Y;
}
private void recmousemove(object sender, MouseEventArgs m)
{
if (m.Button != MouseButtons.Left)
return;
rec.X = m.X;
rec.Y = m.Y;
Invalidate();
}
}
【问题讨论】:
-
我认为你需要多说一下这里“拖放”的确切含义:使用绘画的技术将产生一次性矩形,这些矩形将在下一次 MouseDown 时被清除对 Invalidate 的调用。您是否正在寻找一个矩形或将“持续”在屏幕上的矩形?然后您可以“选择”并四处移动或调整大小?
-
如果您需要“形状”,请查看当前的 SO 问题:stackoverflow.com/questions/2440912/…
标签: c# system.drawing