2010-10-25 110 views
2

我可以動態地成功創建對象並動態命名它們。例如:點擊一個畫布創建一個名爲'image1'的圖像,點擊其他地方,然後創建'image2'等。但是之後,如果我想根據名稱更改屬性,該怎麼辦?在我的JavaScript日子裏,我會getElementById('image1')。style.color = #ffffff;C#動態對象創建/修改?

在c#中怎麼樣?可以這麼說'getElementById()'在哪裏?

+2

這是WinForms? WPF? – 2010-10-25 22:39:39

回答

2

在的WinForms,你可以使用

Control c = Form1.Controls.Find("image1", true); 

int i = Form1.Controls.IndexOfKey("image1") 
Control c = Form1.Controls[i]; 

對於WPF的東西是不同的,這太問題看起來可能是在這種情況下有用的:How can I find WPF controls by name or type?

+0

這將在wpf中工作嗎?另外,如果我正確理解,在設置Control c之後,我可以做一些事情,比如c.Text =「test」; ??? – Phil 2010-10-25 22:55:46

+0

不,WPF是不同的,但這個問題可能會幫助你:http://stackoverflow.com/questions/636383/wpf-ways-to-find-controls是的,一旦你有'控制c',你可以改變文字如果你想。 – WildCrustacean 2010-10-25 22:58:27

+0

謝謝,我會試試看,它看起來像正確的軌道。 – Phil 2010-10-25 23:06:58

0

我不知道我是否正確理解你。

通常,與.NET相關的技術一起工作時,對象是生活在集合中。例如,在Windows窗體項目中,控件被放置在「控件」集合中(您可以使用this.Controls訪問它)。

那麼,如何檢索一個特定的對象?取決於你在尋找什麼。所有對象都有一些屬性,您可以將其用作ID。

foreach (Control c in this.Controls) 
{ 
    if (c.ClientID == 'ID than I am looking for') 
     performsomeaction(); 
}