Я создаю форму в Visual Studio 2012, и у меня есть контроллер (более конкретный ползунок), который называется trFinger1Ph1
. Можно ли получить доступ к этому с помощью переменной?Использование строки для доступа к элементу формы
Это, как я обычно доступ к моему контроль (который работает)
int value = Form1::trFinger1Ph1-> Value;
Но я надеюсь сделать это:
std::string test = "trFinger1Ph1"
int value = Form1::test -> Value;
Я использую это, потому что у меня есть большой список элементов управления , и доступ к ним таким образом поможет мне очистить большую часть моего кода. Очевидно, что программа ищет внутри trFinger1Ph1 для тестирования и не распознает его как тест переменной.
Любые идеи?
Оператор * a :: b * запрашивает элемент b объекта a, поэтому вы запрашиваете элемент * test * из объекта * a *. Поскольку строковый тест является объектом вне * Form1 *, это приводит к ошибке. Если вы хотите выполнить литеральную замену в своем коде, тогда вам понадобится макрос, но это очень обескураживает. Если вы хотите назвать их для своего имени, вам нужно создать метод внутри объекта * Form1 *, чтобы связать каждую литеральную строку с функцией. – chubakueno
Мне нужно задаться вопросом, почему вы использовали элементы 'static' для хранения ручек для элементов управления. Обычно каждый экземпляр одной формы имеет свой собственный экземпляр элемента управления. –