-2

每次加载表单时,我想使用轮子更改(例如)30 个按钮的背景图像。

我不能使用这个:

for(int i=1;i<=30;i++)
{
    button i .backgroundimage=image.fromfile("URL");
}

我应该怎么办?

4

2 回答 2

1

您的问题有多种可能的解释。为什么你不能使用你的代码?您的问题也有不同的解决方案。

例如:

    public Form1() // Constructor
    {
        InitializeComponent(); // Ensure all controls are created.

        List<Button> buttons = new List<Button>(30);

        buttons.Add(mybutton1)
        buttons.Add(mybutton2)
        // Go futher with all your buttons.
    }


    private void Form1_Load(object sender, System.EventArgs e) // Create a load event
    {
       foreach(Button button in buttons)
       {
          button.BackgroundImage = Image.FromFile(path);
          // Note: The file remains locked until the Image is disposed!
       }
    }
于 2012-10-11T20:32:51.830 回答
0

好吧,假设此代码在 Form_Load 中执行并且按钮父控件是您的表单,您可以使用类似的东西。请记住,您应该提供要设置为背景图像的图像的真实路径

string path = "rootNameOfTheImage";
int counter = 0;
foreach(Control ctrl in this.Controls)
{
    if(ctrl is Button)
    {
        Button btn = (Button)ctrl;
        if(/* test if this button should be used */)
        {
            btn.BackgroundImage=Image.FromFile(path + counter++.ToString() + ".jpg");
        }
    }
}
于 2012-10-11T20:28:55.413 回答