Я работаю с.NET платформа CF в c#, и я хочу знать, могу ли я получить доступ к средствам управления так или иначе как это:
string field="txtName";
this.Controls[field];
или этот impossibile?
Как насчет использования Linq?
var myControl = this.Controls.Cast<Control>().OfType<WhateverControlType>().FirstOrDefault(cont => cont.ID == "myControlId");
Что-то вроде этого?
Я не понимаю, почему это было бы неправильно, индексатор ожидает строку
, а вы передаете строку
, так что для меня это правильно.
Я думаю, что метод, который вы ищете, это FindControl
- вы найдете этот метод на всем, что имеет коллекцию Controls
.
Можно ссылаться на элемент управления в коллекции элементов управления по имени (stirng) или индексу (int). Единственное, что вам нужно будет сделать дополнительно, это привести элемент управления к типу объекта, который он представляет. Что-то вроде следующего.
MyControl c (MyControl)это. Controls["ControlName"];
Наслаждаться!