使用动态名称更改按钮图像

时间:2013-05-16 13:01:34

标签: c#

如果我List<>中包含按钮文字?

,如何更改按钮图像?

我在词典中添加了我的按钮名称和文本。我也有我的房间名单。  我在表单上有40个按钮,每个按钮上都有数字。每个按钮代表一个房间,按钮文本是房间号。我的清单NameRoom是预订房间列表。我想改变有预约的按钮的图片。所以我不是想改变文字,我试图改变按钮的形象。谢谢

foreach (int roomN in NameRoom)
{
    if (dictionary.ContainsKey(roomN))
    {
        string buttonName = dictionary[roomN];
        Button button = new Button();
        button.Name = buttonName;

        //ImageBrush myBrush = new ImageBrush();
        //var urisource = new Uri(@"Resources\dolu.jpg", UriKind.Relative);
        //myBrush.ImageSource = new BitmapImage(urisource);
        //button.BackgroundImage = myBrush;
        button.Image = ((System.Drawing.Image)(Properties.Resources.Merdivan));

        //button.Image = System.Drawing.Image.FromFile(@"Resources\dolu.jpg");   
   }
}

2 个答案:

答案 0 :(得分:0)

按钮名称。您必须提供使用名称的上下文。我相信你想说文字。

Button button = new Button();
button.Text = "Something"

这将更改按钮上显示的文本。如果您真的想要更改名称,请告诉我们这样做的原因和一些背景。

干杯

答案 1 :(得分:0)

的WinForms?如果是,请尝试以下方式:

        foreach (int roomN in NameRoom)
        {
            if (dictionary.ContainsKey(roomN))
            {
                string buttonName = dictionary[roomN];
                Control[] matches = this.Controls.Find(buttonName, true);
                if (matches.Length > 0 && matches[0] is Button)
                {
                    Button button = (Button)matches[0];
                    button.Image = ((System.Drawing.Image)(Properties.Resources.Merdivan));
                }
            }
        }