我正在尝试使用标签,按钮等构建原型。但是,我确实希望通过外部文件(可能是文本文件或excel文件)自定义标签或按钮中的文本。我怎样才能做到这一点?
目前,我正在尝试使用以下格式的CSV文件。
仪表板标题,仪表板 方框1栏目名称,方框1 按钮1,下一步
在我的代码中,我将它们读入文本字段,如下所示。
string[] lines = File.ReadAllLines("Dashboard.csv");
for (int i = 0; i < lines.Length; i++)
{
string currentLine = lines[i];
string[] lineValues = currentLine.Split(',');
switch (i)
{
case 0: dashboardTitle.Content = lineValues[1];
case 1: box1ColName.Content = lineValues[1];
case 2: button1.Content = lineValues[1];
}
}
我现在担心的是,随着字段(元素)数量的增加。我不得不将开关部分扩展到案例100?如何在CSV文件中指定它们以相应地填充标签按钮?
答案 0 :(得分:1)
尝试在文件中使用name = value格式。
e.g.
button1 =“我的名字是button1”
label2 =“这是一个标签”
将这些值加载到字典中
Dictionary<string, string> d = new Dictionary<string, string>();
d.Add("button1", "My name is button1");
d.Add("label2", "This is a label");
然后,您可以执行以下算法。遍历表单上的所有组件。如果组件名称与字典键匹配,请设置适当的值。例如:
Control.ControlCollection coll = this.Controls;
foreach(Control c in coll)
{
if(c != null)
{
if (d.ContainsKey(c.Name))
{
c.Text = d[c.Name];
}
}
}
查找控件的另一种方法是使用:
Control.ControlCollection.Find
方法。通过名称搜索控件更容易。
但请注意,并非所有控件都具有“.Text”属性,因此您必须检查控件的类型。 但是,我还强烈建议您学习如何使用资源文件。它是一种普遍接受的处理资源字符串的方法。
答案 1 :(得分:0)
Scott Hanselman刚刚写了一篇可能适合你的博客文章。它是以ASP.NET编写的一个例子,但它明确地不限于它:
这将开始一篇长达9页的关于该主题的文章。