基于自定义序列化后的.NET控件类型?

时间:2011-05-18 15:46:43

标签: winforms serialization c#-4.0 .net-4.0 controls

在出于某种目的将.NET控件对象序列化为自定义对象(即MyControlObject)到另一个进程的过程中,我需要以自定义方式重新绘制这些控件。我需要知道它是什么类型(按钮,文本框,组合框,TextField,Calander,ToolStrip,TtoolstripMenu,RichTextBox,TabControl或TreeView)。我可能需要一种typeOf(RichTextBox) == RichTextBox来检查。

2 个答案:

答案 0 :(得分:0)

是的:

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

if (sayMyControlObject is TextBox)

会这样做,但是根据你对每个人的处理方式,将它封装到这样的switch语句中可能会更好:

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

      break;

      case "ComboBox":

      break;

      //etc...
}

答案 1 :(得分:0)

Control c = yourControl;
Type controlType = yourControl.GetType(); // will give you the type
string controlTypeName = controlType.Name; // will give you the name of the type