Hallo Entwickler Gemeinde,
mein Problem in kürze:
** Ich nutze ein Property Grid um Nachrichten die über einen Seriellen Port gesendet werden zu konfigurieren, was auch gut klappt, da im Property Grid eben alle ENUM, sowie Properties die die Klasse hat angezeigt werden.
Jetzt kann der Benutzer über einen Drop Down entscheiden welche Nachricht er konfigurieren möchte und diese wird dann in das Property Grid geladen.
Jetzt das Problem.
Das property Grid besitzt eine Event "PropertyValueChanged", und im e-Parameter erfahre ich welche Property sich nun geändert hat.
Soweit auch noch kein Problem. Bzw ich ziehe das aktuelle Objekt nun Raus über Me.pg1.SelectedObject (pg1=PropertyGrid1)
Jetzt würde ich gerne den Select Case umgehen, daß hier sozusagen
Stings als Vergleich herangezogen werden z.B. "clsMsg_100", "clsMsg_101", ...
FRAGE: Wie kann ich das abändern, daß wenn heute jemand die Klassennamen über Refactoring ändert, sich dieser Teil automatisch mit ändert.
Gruß & Danke schonmal
mein Problem in kürze:
** Ich nutze ein Property Grid um Nachrichten die über einen Seriellen Port gesendet werden zu konfigurieren, was auch gut klappt, da im Property Grid eben alle ENUM, sowie Properties die die Klasse hat angezeigt werden.
Jetzt kann der Benutzer über einen Drop Down entscheiden welche Nachricht er konfigurieren möchte und diese wird dann in das Property Grid geladen.
Jetzt das Problem.
Das property Grid besitzt eine Event "PropertyValueChanged", und im e-Parameter erfahre ich welche Property sich nun geändert hat.
Soweit auch noch kein Problem. Bzw ich ziehe das aktuelle Objekt nun Raus über Me.pg1.SelectedObject (pg1=PropertyGrid1)
Jetzt würde ich gerne den Select Case umgehen, daß hier sozusagen
Stings als Vergleich herangezogen werden z.B. "clsMsg_100", "clsMsg_101", ...
FRAGE: Wie kann ich das abändern, daß wenn heute jemand die Klassennamen über Refactoring ändert, sich dieser Teil automatisch mit ändert.
Gruß & Danke schonmal
Code:
Dim obj As Object = Me.pg1.SelectedObject Dim ot As System.Type = obj.GetType Dim Msg As String = "" Select Case ot.Name Case "clsMsg_100" Dim TheNewObj As nsSentenceWriter.clsMsg_100 TheNewObj = Me.pg1.SelectedObject Msg = TheNewObj.ToString Case "clsMsg_101" Dim TheNewObj As nsSentenceWriter.clsMsg_101 TheNewObj = Me.pg1.SelectedObject Msg = TheNewObj.ToString Case "clsMsg_102" Dim TheNewObj As nsSentenceWriter.clsMsg_102 TheNewObj = Me.pg1.SelectedObject Msg = TheNewObj.ToString Case Else MsgBox(ot.Name, MsgBoxStyle.OkOnly, "Type Not Defined") End Select Me.WriteToSp(Msg)
Comment