在窗体里面设置一个画布,然后在画布里面用鼠标左键收集点,右键表示多边形绘制完成。
5条回答 默认 最新
- CSDN专家-showbo 2021-06-01 10:44关注
写了个示例,对你有帮助能点击采纳支持下吗,谢谢~ 效果如下
List<Point> polyPoints = null; bool cliceMenu = false; private void Form1_MouseDown(object sender, MouseEventArgs e) { if (cliceMenu) { if (e.Button == MouseButtons.Left) { if (polyPoints == null) polyPoints = new List<Point>(); polyPoints.Add(e.Location); } else if (e.Button == MouseButtons.Right) { using (var g = this.CreateGraphics()) { g.SmoothingMode = SmoothingMode.AntiAlias; g.Clear(Color.White); using (SolidBrush br = new SolidBrush(Color.FromArgb(100, Color.Yellow))) { g.FillPolygon(br, polyPoints.ToArray()); } g.DrawPolygon(Pens.DarkBlue, polyPoints.ToArray()); foreach (Point p in polyPoints) { g.FillEllipse(Brushes.Red, new Rectangle(p.X - 2, p.Y - 2, 4, 4)); } polyPoints = null; } } } } private void button1_Click(object sender, EventArgs e) { using (var g = this.CreateGraphics()) { g.Clear(this.BackColor); } } private void 绘制多边形ToolStripMenuItem_Click(object sender, EventArgs e) { cliceMenu = true; } private void 停止绘图ToolStripMenuItem_Click(object sender, EventArgs e) { cliceMenu = false; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用