tôi đã viết mã này:Di chuyển hình chữ nhật với chuột
private struct MovePoint
{
public int X;
public int Y;
}
private void Image_MouseDown(object sender, MouseEventArgs e)
{
FirstPoint = new MovePoint();
FirstPoint.X = e.X;
FirstPoint.Y = e.Y;
}
private void Image_MouseMove(object sender, MouseEventArgs e)
{
if(e.Button == MouseButtons.Left)
{
if(FirstPoint.X > e.X)
{
Rectangle.X = FirstPoint.X - e.X;
//Rectangle.Width -= FirstPoint.X - e.X;
} else
{
Rectangle.X = FirstPoint.X + e.X;
//Rectangle.Width += FirstPoint.X + e.X;
}
if(FirstPoint.Y > e.Y)
{
Rectangle.Y = FirstPoint.Y - e.Y;
//Rectangle.Height -= FirstPoint.Y - e.Y;
} else
{
Rectangle.Y = FirstPoint.Y + e.Y;
//Rectangle.Height += FirstPoint.Y + e.Y;
}
Image.Invalidate();
}
}
private void Image_Paint(object sender, PaintEventArgs e)
{
if(Pen != null) e.Graphics.DrawRectangle(Pen, Rectangle);
}
Rectangle di chuyển, nhưng với đảo ngược (nó không nên). Bạn có thể giúp?
Bạn không bao giờ cho hình chữ nhật có Chiều rộng hoặc Chiều cao. –
@Hans: Điều này có vẻ chỉ là một đoạn trích. Nếu hình chữ nhật không có chiều rộng và chiều cao ban đầu, OP không thể thấy nó di chuyển (mặc dù không chính xác). :) – Ani
@HansPassant: Chiều rộng và Chiều cao nhất định, nhưng tôi chưa đăng đoạn mã này – Ticksy