Назначение значения из файла сохранения в Visual Basic 2010 - PullRequest
0 голосов
/ 11 октября 2011

Мой проект использует Visual Basic 2010. У меня есть чистый текстовый файл сохранения в следующем формате:

num_TEC|1
num_STR|0
num_PER|0
num_MEC|1
num_KNO|1
num_DEX|1

Я пытаюсь загрузить данные, используя первый столбец в качестве имени объекта ивторой в качестве значения.У меня был некоторый успех со следующим (пропуская некоторые основные строки ввода / вывода):

prop = FileReader.ReadLine().Split("|")
tempvar = prop(0)    

If TypeName(Me.Controls(tempvar)) = "NumericUpDown" Then
  Me.Controls(tempvar).Value = prop(1)

У меня есть проблемы с этим, потому что у меня есть некоторые объекты в панелях или групповых полях, и Me не достигает их.

Есть ли способ просто строго ссылаться на объект с переменной?Я хотел бы назначить первый столбец в prop (0) и просто сказать:

if TypeName(object(prop(0))) = "NumericUpDown" then
  object(prop(0)).Value = prop(1)

Кто-нибудь может помочь с этим?

Спасибо!

1 Ответ

1 голос
/ 11 октября 2011

Я предлагаю добавить ваш контрольный идентификатор в какой-то список или словарь, который содержит все элементы управления, которые вы определили, и использовать в качестве примера выше.Список может быть списком определенных вами элементов управления классом или простым словарем

, например: добавить это как поля.Строка здесь означает идентификатор элемента управления, объект означает

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);
}

}

По сути, идея состоит в том, чтобы вам было проще работать с помощью словаря, а не бокса ираспаковка и проверка на контроль детей;Просто поместите их в словарь, используя его имя и его экземпляр.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...