C# - 动态创建和移动图片框

时间:2013-11-02 23:37:27

标签: c# visual-studio-2010

好的,所以我试图在表单上移动按钮。我使用以下代码来调用按钮:

i++;
Button button = new Button();
button.Location = new Point(160, 30 * i + 10);
button.Click += new EventHandler(b_Click);
button.Tag = i;
panel1.Controls.Add(button);

我可以点击每个按钮并显示一个消息框,显示他们的标签,但我想用他们的标签作为一种方法,用计时器移动按钮。

1 个答案:

答案 0 :(得分:0)

假设这是WinForms,您可以在Form Controls集合上使用Linq查询来按标签查找按钮。

    var found = (from Control c 
                 in this.Controls 
                 where c.Tag == "ButtonTag"
                 select c).FirstOrDefault() as Button;

    if (found != null)
    {
        // manipulate the button
    }

我应该注意,这只会在表单上找到顶级控件。它找不到容器控件内部的按钮(如面板)。如果您的按钮位于容器中,只需将“this”替换为容器名称即可。

    var found = (from Control c 
                 in panel1.Controls 
                 where c.Tag == "ButtonTag"
                 select c).FirstOrDefault() as Button;

我还应该注意,在具有大量控件的表单上,这可能会很慢。