我可以动态地成功创建对象并动态命名它们。示例:单击画布以创建名为“image1”的图像,单击其他位置,然后创建“image2”等。但之后,如果我想根据名称更改属性,该怎么办?在我的javascript时代,我会getElementById('image1')。style.color = #ffffff;
在c#中怎么样?可以这么说'getElementById()'在哪里?
答案 0 :(得分: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?
答案 1 :(得分:0)
我不知道我是否正确理解你。
通常,使用.NET相关技术,对象都存在于集合中。例如,在Windows窗体项目中,控件放在“Controls”集合中(您可以使用this.Controls访问它)。
那么,如何检索一个特定的对象呢?取决于你在寻找什么。所有对象都有某种属性,可以用作ID。
foreach (Control c in this.Controls)
{
if (c.ClientID == 'ID than I am looking for')
performsomeaction();
}