从保存文件在Visual Basic 2010
问题描述:
我的项目分配值是使用Visual Basic 2010年我有一个纯文本文件保存具有以下格式:从保存文件在Visual Basic 2010
num_TEC|1
num_STR|0
num_PER|0
num_MEC|1
num_KNO|1
num_DEX|1
我试图通过加载数据第一列作为对象名称,第二列作为值。我已经有一些成功与以下(跳过一些基本的IO线):
prop = FileReader.ReadLine().Split("|")
tempvar = prop(0)
If TypeName(Me.Controls(tempvar)) = "NumericUpDown" Then
Me.Controls(tempvar).Value = prop(1)
我有这样的问题,因为我在面板或组框中一些对象和我没有达到放进去。
有没有办法只是严格引用一个变量的对象?我很乐意将第一列分配到道具(0),并且只是说
if TypeName(object(prop(0))) = "NumericUpDown" then
object(prop(0)).Value = prop(1)
任何人都可以帮忙吗?
谢谢!
答
我建议将您的控件ID添加到某种列表或字典中,该列表或字典中包含您定义的所有控件,并将其用作上面的示例。 该列表可以是您定义的类控件列表或简单字典
例如: 添加此字段。此处的字符串表示控件ID,对象表示
private readonly Dictionary<String,Control> dictControl = new Dictionary<String,Control>();
//添加参与您的过程的所有控件。确保它是唯一名称 如:
private void yourMethodAllControl()
{
this.dictControl.Add(yourControl.Name, yourControl);
... add all your control and so on....
}
//设置你的价值在这里
private void SetValues()
{
.....// get all lines from files....
foreach(String line in lines)
{
var query = from ctrl in this.dictControl
where ctrl.Key == line.Split(0)
select ctrl;
var singleCtrl = query.First();
singleCtrl.Value = line.Split(1);
}
}
基本的理念是让你更容易使用字典来操作,而不是装箱和拆箱和检查为控制孩子;它只是通过使用它的名称和实例将它们放入字典中。
谢谢你的回应。这花了我一段时间,但我现在已经研究并实现了一本字典,并且看到它在这种情况下非常有用。 –