Binding pictureBox BackColor to User settings?

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von rgomez.

    Binding pictureBox BackColor to User settings?

    Guten Abend!

    Eine kurze Frage:
    Versuche die Eigenschaft "Backcolor" eines PictureBoxes zu einem UserSetting namens "BackColorSetting" zu binden, so dass der Nutzer die Farbe selber einstellen kann.

    Beim starten des Programms alles ok, Setting werden geladen.
    Jetzt soll der Nutzer mittel ColorPick in der lage sein diese Einstellung zu ändern, und diese soll UNMITTELBAR angezeigt werden.

    Mein Problem: Setting wird geändert aber das Binding wird nicht aktualisiert und das PictureBoxBackColor bleibt gleich.
    Dachte durch Bindings wird den neuen Wert automatisch übernommen. Beim Neustarten des Programm wird dann die richtige Farbe angezeigt...also vermutte, hab ein "Refresh" vergessen oder so was geht nur mit Databindings??? ?( ?(

    Vergesse ich da irgend einen Befehl oder ist der ganze Ansatz falsch?

    Danke im voraus
    Life doesn't give you a datasheet. Sometimes the docs are wrong and you have to try it.
    @rgomez Absolut kein Problem:

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    2. Using dlg As New ColorDialog
    3. dlg.Color = My.Settings.BackColorSetting
    4. If dlg.ShowDialog() <> Windows.Forms.DialogResult.OK Then
    5. Return
    6. End If
    7. My.Settings.BackColorSetting = dlg.Color
    8. End Using
    9. End Sub

    Mehr nicht.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Danke für deine Antwort @RodFromGermany, aber glaube hast meine Problematik falsch verstanden.

    Das Binding des BackColor-Propertys kriege ich hin und die Einstellungen werden auch richtig gespeichert.

    Es geht hier um der Auswahl einer Farbe, und als BackgroundColor eines PictureBoxes soll die grad in My.Settings gespeicherte Farbe angezeigt werden.
    Jetzt ändert der Nutzer die Farbe mittels ColorDialog, alles gut, die Settings werden übernommen
    ABER
    die Farbe des Backgrounds ändert sich nicht, erst nach Neustarten des Programms ändert sich.

    Soll ich dann iwie die PictureBox mitteilen, dass sein gebundene Setting geändert wurde oder wird es automatisch durch das Binding mitgeteilt?
    Hab schon mit Update und Refresh (vom Form und Control) aber leider nichts gebracht.

    Ich habe es jetzt manuell realisiert aber würde gerne wissen was ich da falsch mache.

    Ausserdem, und dafür finde ich nichts (oder kann nicht richtig suchen), hatte mich gefragt, ob es möglich wäre eine Liste der gebundene Application Bindings von einem Control zu kriegen, wie es man mit den Databindings machen kann.

    So was wie wenn ich mehrere Farben habe und für jeden ein Button, dann kann ich so später NUR MIT EINEM HANDLER alle Buttons handeln und die entsprechende PBox neu färben und die entsprechende Einstellung aktualisieren.
    Life doesn't give you a datasheet. Sometimes the docs are wrong and you have to try it.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „rgomez“ ()

    rgomez schrieb:

    ABER
    die Farbe des Backgrounds ändert sich nicht, erst nach Neustarten des Programms ändert sich.
    Soll ich dann iwie die PictureBox mitteilen, dass sein gebundene Setting geändert wurde oder wird es automatisch durch das Binding mitgeteilt?
    Hast du das erweiterte Binding schon angeschaut - ist dort der Aktualisierungsmodus auf OnPrpertyChanged eingestellt?

    rgomez schrieb:

    ABER
    die Farbe des Backgrounds ändert sich nich
    Bei mir schon.
    Mach mal ein neues Projekt mit meinem Code.
    @VB1963 Das ist doch default. Oder?
    rgomez Welches Studio verwendest Du? Ich hatte VS2013.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @VB1963 Jou.
    @rgomez Deswegen

    RodFromGermany schrieb:

    Mach mal ein neues Projekt mit meinem Code.
    Wenn das dann geht, lässt sich der Fehler sehr schnell eingrenzen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    So, jetzt gehts....KA warum das nicht ging. Habe VS neugestartet und jetzt gehts....die Aktualisierungsmodus war richtig eingestellt.

    Kann ich jetzt iwie jetzt eine Collection von einem Control kriegen, wo stehen alle gebundene APPBindings?

    Für:
    ​Ausserdem, und dafür finde ich nichts (oder kann nicht richtig suchen), hatte mich gefragt, ob es möglich wäre eine Liste der gebundene Application Bindings von einem Control zu kriegen, wie es man mit den Databindings machen kann.So was wie wenn ich mehrere Farben habe und für jeden ein Button, dann kann ich so später NUR MIT EINEM HANDLER alle Buttons handeln und die entsprechende PBox neu färben und die entsprechende Einstellung aktualisieren.


    Danke im voraus und schönen Tag noch!
    Life doesn't give you a datasheet. Sometimes the docs are wrong and you have to try it.