Тип элемента управления .NET после настраиваемой сериализации? - PullRequest
0 голосов
/ 18 мая 2011

В процессе сериализации объектов элементов управления .NET в пользовательские объекты (например, MyControlObject) для какого-то другого процесса для какой-то цели мне нужно перерисовать эти элементы управления в произвольном порядке.Мне нужно знать, какой это тип (кнопка, текстовое поле, поле со списком, TextField, Calander, ToolStrip, TtoolstripMenu, RichTextBox, TabControl или TreeView).Мне может понадобиться что-то вроде typeOf(RichTextBox) == RichTextBox для проверки.

Ответы [ 2 ]

0 голосов
/ 18 мая 2011
Control c = yourControl;
Type controlType = yourControl.GetType(); // will give you the type
string controlTypeName = controlType.Name; // will give you the name of the type
0 голосов
/ 18 мая 2011

Yep:

if (sayMyControlObject.GetType() == typeof(TextBox))

или

if (sayMyControlObject is TextBox)

сделает это, но в зависимости от того, что вы делаете с каждым из них, возможно, будет лучше включить это в оператор switch следующим образом:

switch (config.GetType().Name)
{
      case "TextBox":

      break;

      case "ComboBox":

      break;

      //etc...
}
...