Zum Inhalt springen

DennisW

Mitglieder
  • Gesamte Inhalte

    5
  • Benutzer seit

  • Letzter Besuch

  1. Fehler gefunden! Es fehlte die Referenz auf System.Windows.Forms.dll :old cp.ReferencedAssemblies.Add("system.windows.forms.dll")
  2. Hi zusammen, meine Klasse beinhaltet eine Funktion, die mir ein beliebiges Control zurückgeben soll. Sprich wenn ich als Parameter "System.Windows.Forms.Button" übergeben, möchte ich eine Instanz dieses Controls zurück bekommen. Ich habe hier meinen bisherigen Code mal angehängt, denn in der Zeile "Assembly = CompilerResults.CompiledAssembly" bekomme ich einen Fehler. Könnt ihr mir da ggf. weiterhelfen? Danke schonmal im voraus, Gruß Dennis. Imports System Imports System.Text Imports System.CodeDom.Compiler Imports System.Reflection Public Class Form1 Private Sub btn_EvalTwo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_EvalTwo.Click Me.Controls.Add(Eval("System.Windows.Forms.Button")) End Sub Public Function Eval(ByVal vbCode As String) As Object Dim Assembly As System.Reflection.Assembly Dim CompilerResults As CompilerResults Dim CompilerParameters As CompilerParameters = New CompilerParameters() Dim MethodInfo As MethodInfo Dim s As Object Dim StringBuilder As StringBuilder = New StringBuilder("") Dim TmpObject As Object Dim TmpType As Type Dim VBCodeProvider As VBCodeProvider = New VBCodeProvider Dim ICodeCompiler As ICodeCompiler = VBCodeProvider.CreateCompiler() CompilerParameters.ReferencedAssemblies.Add("system.dll") CompilerParameters.ReferencedAssemblies.Add("system.xml.dll") CompilerParameters.ReferencedAssemblies.Add("system.data.dll") CompilerParameters.CompilerOptions = "/t:library" CompilerParameters.GenerateInMemory = True StringBuilder.Append("Imports System " & vbCrLf) StringBuilder.Append("Imports System.Xml " & vbCrLf) StringBuilder.Append("Imports System.Data " & vbCrLf) StringBuilder.Append("Imports System.Data.SqlClient " & vbCrLf) StringBuilder.Append("Namespace PAB " & vbCrLf) StringBuilder.Append("Class PABLib " & vbCrLf) StringBuilder.Append("Public Function EvalCode() As Object " & vbCrLf) StringBuilder.Append("Dim Temp As New " & vbCode & vbCrLf) StringBuilder.Append("Return Temp " & vbCrLf) StringBuilder.Append("End Function " & vbCrLf) StringBuilder.Append("End Class " & vbCrLf) StringBuilder.Append("End Namespace " & vbCrLf) Debug.WriteLine(StringBuilder.ToString()) CompilerResults = ICodeCompiler.CompileAssemblyFromSource(CompilerParameters, StringBuilder.ToString()) Assembly = CompilerResults.CompiledAssembly 'In dieser Zeile tritt der Fehler auf! TmpObject = Assembly.CreateInstance("PAB.PABLib") TmpType = TmpObject.GetType() MethodInfo = TmpType.GetMethod("EvalCode") s = MethodInfo.Invoke(TmpObject, Nothing) Return s End Function End Class
  3. Hier die Lösung: PropertyDescriptorCollection props = TypeDescriptor.GetProperties(propertyGrid1.SelectedObject); foreach (PropertyDescriptor prop in props) { if (!prop.IsBrowsable) continue; if (prop.ShouldSerializeValue(propertyGrid1.SelectedObject)) Console.WriteLine(prop.Name); }
  4. Ich hatte die Seite zwar vorher schon, aber ich habe es mir noch einmal durchgeschaut. Meiner Meinung nach ist dort allerdings nichts bei, was mir bei der Lösung meines Problems hilft. Trotzdem vielen Dank für den Link.
  5. Hi zusammen, ich habe ein PropertyGrid in mein Form eingefügt und habe an dieses ein weiteres Steuerelement gebunden. Ich bekomme nun im PropertyGrid die Eigenschaften meines Steuerelements angezeigt. Soweit klappt es also perfekt. Ich möchte nun im PropertyGrid Änderungen für das Steuerelement vornehmen und diese in eine Datenbank speichern. Wenn ich das Formular das nächste Mal öffne, werden die Daten aus der Datenbank wieder ausgelesen und im PropertyGrid gesetzt. Das Ziel ist es, dass der User sein Formular umgestalten kann und diese Änderungen in der Datenbank gespeichert werden. Ich hänge allerdings an dem Punkt, an dem ich prüfen möchte, welche Eigenschaften verändert wurden. Ich gehe mal davon aus, dass es möglich ist dies festzustellen, geänderte Eigenschaften werden im PropertyGrid ja fett dargestellt. Nur habe ich bisher keinen Lösungsansatz gefunden. Ich hoffe ihr könnt mir dabei helfen. Vielen Dank schonmal. MfG Dennis.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...