点击另一个c#绘制按钮

时间:2011-03-21 20:33:48

标签: c# .net

我目前正在尝试为下面的组合框中的每个项目绘制一系列按钮是我正在绘制的代码

foreach (Object cbi in acombobox.Items)
{
    Button button = new Button();
    button.Location = new Point(25, 35);
    button.Text = cbi.ToString();
    tabbcontrol.TabPages[3].Controls.Add(button);
}

这会绘制按钮,但它会覆盖任何其他按钮,有没有办法在tabcontrol上的不同位置绘制按钮?

修改

我没有解释得太清楚我如何安排按钮绕另一个按钮,就像蜘蛛图一样,所以当我点击主按钮时,其他人会在周围画线,每条线都会扩展到每个按钮?

2 个答案:

答案 0 :(得分:3)

是。你给他们一个不同的位置。正如您所看到的,您目前正在为所有按钮提供相同的位置,这就是为什么它们彼此重叠的原因。

答案 1 :(得分:2)

您将所有按钮都绘制在同一位置。如果您知道要添加多少个按钮,请为它们制定布局并将它们添加到您希望它们绘制的位置。

如果您正在加载未知数量的按钮,那么您可能希望查看FlowLayoutPanel控件,该控件将其内容沿水平或垂直方向排列。这意味着你可以动态添加控件,它们会自动放在彼此之下/彼此相邻的位置,而不是彼此叠加。

http://msdn.microsoft.com/en-us/library/zah8ywcc.aspx

编辑以回应原始问题和评论的更新:

如果您知道在设计时需要哪些按钮,则可以绘制它们,然后只需在中心按钮单击上切换可见性。否则,您需要使用一些三角函数http://en.wikipedia.org/wiki/Sine#Relation_to_the_unit_circle

来计算它们的位置