Laden...

Update von Eigenschaften im Eigenschaften-Fenster eines Formulars

Erstellt von hvsecs vor 5 Jahren Letzter Beitrag vor 5 Jahren 707 Views
H
hvsecs Themenstarter:in
1 Beiträge seit 2019
vor 5 Jahren
Update von Eigenschaften im Eigenschaften-Fenster eines Formulars

Hi Kollegen.
Ich suche und finde leider nichts, was mich voran bringt - eventuell hat einer von Euch eine Idee?
Es geht um folgendes:
Ich habe ein Form, welches ich als Basis für weitere davon geerbte Formulare benutze. Ich habe die WndProc implementiert und fange Mausklicks ab, um Controls zu verschieben. Diese Controls existieren nicht als Control, sondern als Y-Koordinate, die ich im Eigenschaftenfenster habe.

Wenn ich nun ein abgeleitetes Form habe:
Ich habe praktisch ein Property mit Namen Y. Wenn ich dieses im Eigenschaftenfenster auf einen Wert setze, wird an der eingegeben Höhe eine Linie gezeichnet (im OnPaint-Ereignis). Wenn ich mit der Maus über der Linie bin und die Maus drücke, kann ich die Linie "verschieben", da ich den Wert des Property Y ändere und jedes Mal neu zeichne. Das funktioniert soweit ganz gut.

Ich habe allerdings ein Problem:
Wenn ich die Maus loslasse, sieht alles perfekt aus. Aber im Eigenschaftenfenster steht noch der alte Wert im Property Y. Erst, wenn ich mit der Maus ein anderes Control anklicke (und dadurch das Eigenschaftenfenster dessen Werte zeigt) und ich dann das Form wieder mit der Maus anklicke, dann steht der richtige Wert im Fenster. Wenn ich direkt nach dem Verschieben das Fenster schließe, wird auch die geänderte Eigenschaft nicht gespeichert. Erst nach dem Trick mit dem Anklicken eines anderen Controls lässt mich die Änderung dann auch abspeichern.

Ich habe schon mit den Werten hier gespielt

        [Browsable(true)]
        [DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
        [RefreshProperties(System.ComponentModel.RefreshProperties.Repaint)]

aber es ändert ich nichts an dem Verhalten.
Jemand eine Idee, wie ich das Eigenschaftenfenster dazu bekomme, den Wert zu übernehmen?

DANKE

F
158 Beiträge seit 2015
vor 5 Jahren

Hey,

habe leider nicht wirklich viel von dem verstanden was du da machst... Und vermutlich bin ich nicht mal der halbwegs Richtige zum Beantworten deines Problem...

Aber von dem was ich so entnommen habe, scheint es doch ein arges Problem zu geben...

Für mich klingt das so, als würde da das eine Objekt von dir geklont werden... Mehr ausversehen als bewusst. Dadurch würde es sich um zwei verschiedene Objekte handeln, die erst mit dem Anklicken des nächsten Objektes im Originalobjekt eingefügt werden...

Aber vielleicht hilft dir ja folgendes zum debuggen:

1.) Lass dir in einem MouseMove-Event mal die aktuellen Koordinaten angeben
2.) Könntest du nicht mit einem MouseUp-Event die Daten "updaten"?

Bzw... EIne Frage hätte ich da noch... Ist dieses Eigenschaftenfenster zum "debuggen" oder ist das ein Fenster welches du selber für den Anwender erstellt hast? Erstere Fall würde für mich auf geklontes Objekt hindeuten, zweiteres auf vergessenes "Update" für das Textfeld...

Vermutlich ist mein Post allerdings ziehmlicher Murks...

Gruß Frokuss