你能在c#中使用变量中包含的数据调用表单对象吗?
本文关键字:表单 数据 调用 单对象 变量 包含 | 更新日期: 2023-09-27 18:04:38
对于我目前正在工作的项目,我需要能够调用一个变量,其名称(或部分名称)我已存储在字符串变量中。
例如,如果string s = "1"
,如果没有if
语句,我将如何执行以下操作?
if(s == "1") {
textBox1.Visible = false;
}
if(s == "2") {
textBox2.Visible = false;
}
只有两个文本框,if
语句不是太大的问题,但我不想有太多,如果我可以避免它。
您可以使用Dictionary
类创建键和值之间的映射。如果您试图将整数键映射到TextBox实例,Dictionary<int, TextBox>
的实例将很好地完成此任务。
Dictionary<int, TextBox> dic = new Dictionary<int, TextBox>();
dic.Add(1, textBox1);
dic.Add(2, textBox2);
int input = int.Parse(Console.ReadLine());
if (dic.ContainsKey(input))
Console.WriteLine(dic[input].Text);
else
Console.WriteLine("No box found!");
你不应该。但是你可以这样做:
Control userSelectedControl = Controls.Find("textBox" + space.ToString()).First();
假定这段代码是从'Form'对象本身运行的。
请注意,如果您的命名方案发生了变化(以及许多其他潜在问题),这将中断。可能有一个更好的方法,但没有更多的信息,很难说它是什么。
"Find"查找MSDN上的控件集合:http://msdn.microsoft.com/en-us/library/system.windows.forms.control.controlcollection.find(v=vs.110).aspx