从字符串值创建控件

本文关键字:控件 创建 字符串 | 更新日期: 2023-09-27 18:04:28

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

创建控件

像"DevExpress.XtraEditors.TextEdit"。我知道我可以用

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

我想让它写一点代码。但是DevExpress有很多命名空间和类。我可以从字符串创建控件,除非给一个MainClass?(就像我的示例代码typeof(Control))如果我不能让我必须使用大量的if

从字符串值创建控件

您需要知道类是在哪个程序集中定义的。

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

如果你不知道它是在哪个程序集中定义的,你可以创建一个DevExpress程序集(typeof(GridControl).Assembly, typeof(TreeList).Assembly, ...)的集合并循环它们,直到asm.GetType(name)不返回null