我想在C#中的窗体上绘制矩形。我阅读并发现这个article。是否有任何样本或教程可用?文章不是很有帮助。如何使用鼠标在C#中绘制矩形
1
A
回答
3
您链接的文章似乎是C++,这可能解释为什么它没有多大帮助。
如果您为MouseDown和MouseUp创建事件,则应该有一个矩形所需的两个角点。从那里,这是一个绘制在形式上的问题。 System.Drawing。*应该可能是您的第一站。有一对夫妇教程链接如下:
Drawing with Graphics in WinForms using C#
0
你需要这个3函数和变量:
private Graphics g;
Pen pen = new System.Drawing.Pen(Color.Blue, 2F);
private Rectangle rectangle;
private int posX, posY, width, height;
其次,你需要做一个鼠标关机事件:
private void pictureCrop_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
posX = e.X;
posY = e.Y;
}
}
第三,你需要implemente鼠标向上事件:
private void pictureCrop_MouseUp(object sender, MouseEventArgs e)
{
if (e.Button != MouseButtons.Left)
return;
if (e.X > posX && e.Y > posY) // top left to bottom right
{
width = Math.Abs(e.X - posX);
height = Math.Abs(e.Y - posY);
}
else if (e.X < posX && e.Y < posY) // bottom right to top left
{
width = Math.Abs(posX - e.X);
height = Math.Abs(posY - e.Y);
posX = e.X;
posY = e.Y;
}
else if (e.X < posX && e.Y > posY) // top right to bottom left
{
width = Math.Abs(posX - e.X);
height = Math.Abs(posY - e.Y);
posX = e.X;
}
else if (e.X > posX && e.Y < posY) // bottom left to top right
{
width = Math.Abs(posX - e.X);
height = Math.Abs(posY - e.Y);
posY = e.Y;
}
g.DrawImage(_bitmap, 0, 0);
rectangle = new Rectangle(posX, posY, width, height);
g = pictureCrop.CreateGraphics();
g.DrawRectangle(pen, rectangle);
}
并保证当你调整大小或移动窗体矩形将在那里:
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
Graphics graph = e.Graphics;
graph.DrawImage(_bitmap, 0, 0);
Rectangle rec = new Rectangle(posX, posY, width, height);
graph.DrawRectangle(pen, rec);
}
相关问题
- 1. 使用鼠标绘制矩形QML
- 2. 使用鼠标在c#中绘制矩形
- 3. 如何在java中的鼠标光标周围绘制矩形?
- 4. 用鼠标绘制矩形(divs)
- 5. 如何在C中使用鼠标绘制和移动形状#
- 6. 在WPF中使用MVVM拖动鼠标时绘制矩形
- 7. 在c中绘制矩形#
- 8. C#绘制矩形在鼠标事件上
- 9. Java如何在鼠标点击上绘制矩形
- 10. 在C中使用鼠标点绘制多边形#
- 11. 如何在C++中使用char参数绘制矩形?
- 12. 如何在C++中使用DirectX绘制透明矩形?
- 13. C++ sdl基于鼠标位置绘制动态矩形
- 14. 如何使用svg在矩形内绘制矩形?
- 15. 角2:用鼠标在画布上绘制矩形。
- 16. Java swing在鼠标拖放中绘制矩形
- 17. 在使用鼠标和触摸的ScrollViewer中的画布中绘制矩形
- 18. 如何在C中使用鼠标绘制线条#
- 19. 如何在鼠标点击坐标的图片框上绘制矩形
- 20. 在android中使用min3d绘制矩形
- 21. 在Java中使用JPanel绘制矩形
- 22. 如何在基于鼠标移动事件的SVG中绘制矩形
- 23. 如何用鼠标在Three.js中绘制形状?
- 24. 在C中绘制三个矩形#
- 25. 从坐标绘制矩形
- 26. 如何在Paper.js中绘制矩形?
- 27. 如何在gwt-openlayers中绘制矩形?
- 28. 如何在JPanel中绘制矩形
- 29. 如何在python中绘制矩形?
- 30. 如何在flex 4.5.1中绘制矩形?