我可以动态地成功创建对象并动态命名它们。例如:点击一个画布创建一个名为'image1'的图像,点击其他地方,然后创建'image2'等。但是之后,如果我想根据名称更改属性,该怎么办?在我的JavaScript日子里,我会getElementById('image1')。style.color = #ffffff;C#动态对象创建/修改?
在c#中怎么样?可以这么说'getElementById()'在哪里?
我可以动态地成功创建对象并动态命名它们。例如:点击一个画布创建一个名为'image1'的图像,点击其他地方,然后创建'image2'等。但是之后,如果我想根据名称更改属性,该怎么办?在我的JavaScript日子里,我会getElementById('image1')。style.color = #ffffff;C#动态对象创建/修改?
在c#中怎么样?可以这么说'getElementById()'在哪里?
在的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?
这将在wpf中工作吗?另外,如果我正确理解,在设置Control c之后,我可以做一些事情,比如c.Text =“test”; ??? – Phil 2010-10-25 22:55:46
不,WPF是不同的,但这个问题可能会帮助你:http://stackoverflow.com/questions/636383/wpf-ways-to-find-controls是的,一旦你有'控制c',你可以改变文字如果你想。 – WildCrustacean 2010-10-25 22:58:27
谢谢,我会试试看,它看起来像正确的轨道。 – Phil 2010-10-25 23:06:58
我不知道我是否正确理解你。
通常,与.NET相关的技术一起工作时,对象是生活在集合中。例如,在Windows窗体项目中,控件被放置在“控件”集合中(您可以使用this.Controls访问它)。
那么,如何检索一个特定的对象?取决于你在寻找什么。所有对象都有一些属性,您可以将其用作ID。
foreach (Control c in this.Controls)
{
if (c.ClientID == 'ID than I am looking for')
performsomeaction();
}
这是WinForms? WPF? – 2010-10-25 22:39:39