C # имена динамических элементов управления в .NET CF - PullRequest
1 голос
/ 17 мая 2010

Я работаю с .NET CF framework в c #, и я хочу знать, могу ли я получить доступ к элементам управления как-то так:

string field="txtName";
this.Controls[field];

или это невозможно?

Ответы [ 4 ]

2 голосов
/ 17 мая 2010

Я думаю, что вы используете метод FindControl - вы найдете этот метод на любом объекте с коллекцией Controls.

0 голосов
/ 17 мая 2010

Как насчет использования Linq?

var myControl = this.Controls.Cast<Control>().OfType<WhateverControlType>().FirstOrDefault(cont => cont.ID == "myControlId");

Что-то в этом роде?

0 голосов
/ 17 мая 2010

Можно ссылаться на элемент управления в коллекции элементов управления по имени (stirng) или по индексу (int). Единственное, что вам нужно сделать дополнительно, это привести элемент управления к типу объекта, которым он является. Что-то вроде следующего.

MyControl c (MyControl) this.Controls ["ControlName"];

Наслаждайтесь!

0 голосов
/ 17 мая 2010

Я не понимаю, почему это было бы неправильно, индексатор ожидает string, а вы передаете string, поэтому для меня это правильно.

...