2011-08-04 10 views
0

は「DevExpress.XtraEditors.TextEdit」.Iは私が私はDevExpress社のコンポーネントcontrols.Iを使用しています

var textBoxType = typeof(Control).Assembly.GetType("System.Windows.Forms.TextBox", true); 
var textBox = Activator.CreateInstance(textBoxType); 
のように反射でこれを行うことができます知っているように文字列値

からコントロールを作成したい文字列値からコントロールを作成します。

私は小さなコードを書くためにこれを作っていますが、DevExpressには多くの名前空間とクラスがあります。 メインクラスを指定しない限り、文字列からコントロールを作成できますか?私はあなたが、クラスが定義されているアセンブリを知る必要があり

+1

これはめったに良い考えではありません。 – SLaks

答えて

2

場合、私はの多くを使用する必要が作ることができない場合 (私のサンプルコードtypeof演算(コントロール)のような)。

例えば、編集者のすべてDevExpress.XtraEditors.vX.Y.dll、またはtypeof(BaseEdit).Assemblyです。

あなたはそれがで定義されていたアセンブリわからない場合asm.GetType(name)nullを返さないまで、あなたはそれらを介してDevExpress社アセンブリ(typeof(GridControl).Assembly, typeof(TreeList).Assembly, ...)の収集とループを作成することができます。
非常に遅いことに注意してください。