bittmann1994
Grünschnabel
Hallo liebe Community,
ich bin eigentlich nicht der Typ der gleich bei der Suche auf gibt, jedoch stehe ich jetz vor einem Problem das schier unlösbar scheint.
Und zwar:
ich habe folgenden Code genutzt um dynamisch Code meinem Programm zufügen zu können und habe das Problem, dass ich aber egal wie ich es mache, keine GUI Elemente hizufügen kann. Hat da jemand irgendwelche tipps? Danke schon mal im voraus.![Smile :-) :-)](https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f642.png)
ich bin eigentlich nicht der Typ der gleich bei der Suche auf gibt, jedoch stehe ich jetz vor einem Problem das schier unlösbar scheint.
Und zwar:
ich habe folgenden Code genutzt um dynamisch Code meinem Programm zufügen zu können und habe das Problem, dass ich aber egal wie ich es mache, keine GUI Elemente hizufügen kann. Hat da jemand irgendwelche tipps? Danke schon mal im voraus.
![Smile :-) :-)](https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f642.png)
C#:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Reflection;
using System.CodeDom.Compiler;
namespace testcodebox
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button2_Click(object sender, EventArgs e)
{
CodeDomProvider provider = CodeDomProvider.CreateProvider("CSharp");
CompilerParameters parameters = new CompilerParameters();
parameters.GenerateInMemory = true;
parameters.ReferencedAssemblies.Add("System.dll");
parameters.ReferencedAssemblies.Add("System.Windows.Forms.dll");
StringBuilder sb = new StringBuilder();
sb.AppendLine(@"using System;");
sb.AppendLine(@"using System.Text;");
sb.AppendLine(@"using System.Windows.Forms;");
sb.AppendLine(@"public class Test{");
sb.AppendLine(@"public void Funktion(){");
sb.AppendLine(richTextBox1.Text);
sb.AppendLine(@"}}");
CompilerResults result = provider.CompileAssemblyFromSource(parameters, sb.ToString());
listBox1.DataSource = result.Errors;
listBox1.DisplayMember = "ErrorText";
if (!result.Errors.HasErrors)
{
object instance = result.CompiledAssembly.CreateInstance("Instance");
MethodInfo info = instance.GetType().GetMethod("Funktion");
info.Invoke(instance, null);
}
}
}
}
Zuletzt bearbeitet von einem Moderator: