我想在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中繪製矩形?