csharp,如何选中在picture里绘制的图形
时间: 2023-06-15 17:05:41 浏览: 62
要选中在PictureBox中绘制的图形,可以使用以下步骤:
1. 在PictureBox中设置MouseClick事件。
2. 在MouseClick事件中获取鼠标点击的位置。
3. 使用Graphics对象绘制所有图形,并将每个图形的信息保存在一个List中。
4. 遍历List中的所有图形,判断鼠标点击的位置是否在图形内,如果是,则选中该图形。
5. 在选中的图形上绘制一个边框或其他标记,以表示该图形被选中。
以下是示例代码:
```csharp
private List<Shape> shapes = new List<Shape>(); // 保存所有图形的List
private void pictureBox1_MouseClick(object sender, MouseEventArgs e)
{
foreach (Shape shape in shapes)
{
if (shape.Contains(e.Location))
{
shape.Selected = true; // 标记该图形被选中
pictureBox1.Invalidate(); // 重新绘制PictureBox
return;
}
}
}
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
foreach (Shape shape in shapes)
{
shape.Draw(e.Graphics); // 绘制所有图形
if (shape.Selected)
{
shape.DrawSelection(e.Graphics); // 在选中的图形上绘制标记
}
}
}
```
在上述示例代码中,Shape是一个自定义的类,表示绘制的图形,包含Contains方法用于判断鼠标点击的位置是否在图形内,以及Draw和DrawSelection方法用于绘制图形和标记。在MouseClick事件中遍历所有图形,如果找到一个被点击的图形,则将其标记为被选中,并在Paint事件中重新绘制PictureBox,以便在选中的图形上绘制标记。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)