从字符串值创建控件

时间:2011-08-04 22:24:24

标签: c# devexpress

我正在使用DevExpress组件控件。我想从字符串值

创建控件

喜欢“DevExpress.XtraEditors.TextEdit”。我知道我可以用反射来做这个

var textBoxType = typeof(Control).Assembly.GetType("System.Windows.Forms.TextBox", true);
var textBox = Activator.CreateInstance(textBoxType);

我想用这个来编写小代码。但是DevExpress有很多命名空间和类。 除非给出一个MainClass,否则我可以从字符串创建控件吗? (比如我的示例代码typeof(Control)) 如果我不能让我必须使用很多if

1 个答案:

答案 0 :(得分:2)

您需要知道定义类的程序集。

例如,所有编辑都在DevExpress.XtraEditors.vX.Y.dlltypeof(BaseEdit).Assembly

如果您不知道它定义了哪个程序集,您可以创建一个DevExpress程序集集合(typeof(GridControl).Assembly, typeof(TreeList).Assembly, ...)并循环遍历它们,直到asm.GetType(name)不返回null
请注意,它会非常慢。