2013-05-16 49 views
0

如果按鈕文本包含在我的List<>中,如何更改按鈕圖像?更改動態名稱的按鈕圖像

我在Dictionary中添加了我的按鈕名稱和文本。我也有我的房間名稱列表。 我在窗體上有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"); 
    } 
} 
+0

您是真的想要更改名稱,還是嘗試更改按鈕上顯示的文本? –

+1

你是否真的在任何地方顯示這個按鈕?從你的代碼我不知道你如何判斷它是否有效? – Dutts

+0

該代碼只是創建一個新的按鈕,並給它名稱和圖像屬性 – Emre

回答

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)); 
       } 
      } 
     } 
+0

非常感謝你非常完美的工作!謝謝你拯救了我的生命! – QueenOfError

0

按鈕名稱。你必須給你使用名字的背景。我相信你想說文字。

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

這將更改按鈕上顯示的文本。如果你真的想要改變名字,請給我們這樣做的原因和一些背景。

乾杯

+0

對不起,我編輯文本,但它看起來沒有工作,我的實際問題不顯示。我在窗體上有40個按鈕,每個按鈕上都有數字。每個按鈕代表一個房間,按鈕文本是房間號碼。我的名單NameRoom是保留房間清單。我正在嘗試更改具有切除功能的按鈕的圖片。所以我不想改變文字,我試圖改變按鈕的圖像。謝謝 - – QueenOfError

+0

你每次都在創建新的按鈕...而是嘗試找到你的按鈕實例並改變它 – Rob