如何将按钮与基于图形的线条链接
本文关键字:图形 链接 按钮 于图形 | 更新日期: 2023-09-27 18:33:25
我的表单中有一个"按钮创建者"(创建我自己的自定义按钮),我需要在表单中创建一些按钮后,单击2个随机按钮进行连接,然后用简单的线条(可以是System.Drawing.Pen
)。我应该使用某种图逻辑连接来做到这一点。但我不知道我应该怎么做。有什么代码建议吗?谢谢
下面是
一个示例:
// two variables we will need:
Button lastBtn = null;
List<Tuple<Button, Button>> buttons = new List<Tuple<Button, Button>>();
void commonButton_Click(object sender, EventArgs e)
{
Button btn = sender as Button;
if (btn == null) return;
if (lastBtn == null) { lastBtn = btn; return; }
else if (btn == lastBtn) { lastBtn = null; return; }
else { buttons.Add(new Tuple<Button, Button>(lastBtn, btn)); lastBtn = null; }
Invalidate();
}
private void Form1_Paint(object sender, PaintEventArgs e)
{
foreach ( Tuple<Button, Button> t in buttons)
{
e.Graphics.DrawLine(Pens.RoyalBlue, t.Item1.Location, t.Item2.Location);
}
}
创建按钮时,将每个按钮与公共单击事件挂钩:
yourButtonClass btn = new yourButtonClass()..
..
btn.Click += commonButton_Click;
这总是从左上角绘制线条。使用中间代替或在边缘上的智能定位,如果留给您,则与另一个按钮最接近。在后一种情况下,如果需要,您还可以在笔中添加开始和端盖。