Opacity Werte aus String laden ?

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

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von Dksksm.

    Opacity Werte aus String laden ?

    Hallo,

    weiß jemand wie man den Wert für eine Form mit Transparents (Opacity) aus
    den Settings laden kann ?

    Um es kurz zu erklären... Habe in den "My.Settings.NAME" den Wert 35 und kann diesen auch ändern mit einer
    TrackBar von 10 bis 100. Dieser Wert speichert sich dann in die "My.Settings.NAME".
    Nun soll zugleich die Form1.Opacity diesen Wert bekommen und somit soll die Form1 also eine Transparents haben.

    Nur geht dies leider nicht.
    Ich habe es mit Double und String versucht wie mir VB.NET mir das gesagt hat.
    Fehler entstehen nicht. Daher kann ich leider auch kein Fehler nennen.

    Aktueller Code (Form1):

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    3. Me.Opacity = My.Settings.transparents
    4. Timer1.Enabled = True
    5. End Sub
    6. Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
    7. Me.Opacity = My.Settings.transparents
    8. End Sub
    9. Private Sub settings_Click(sender As Object, e As EventArgs) Handles settings.Click
    10. Form2.Show()
    11. End Sub
    12. End Class


    Aktueller Code (Form2):

    VB.NET-Quellcode

    1. Public Class Form2
    2. Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    3. pro_change.Value = My.Settings.transparents
    4. pro_wert.Text = pro_change.Value
    5. End Sub
    6. 'Programm beenden
    7. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles pro_close.Click
    8. Application.Exit()
    9. End Sub
    10. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles set_close.Click
    11. Me.Close()
    12. End Sub
    13. Private Sub pro_change_Scroll(sender As Object, e As EventArgs) Handles pro_change.Scroll
    14. pro_wert.Text = pro_change.Value 'pro_wert.Text zeigt mir nur an was ich für ein wert aktuell habe
    15. My.Settings.transparents = pro_change.Value
    16. My.Settings.Save()
    17. My.Settings.Reload()
    18. 'Das mit dem .Save() und .Reload() mache ich immer.
    19. 'ich weiß, dass man das in den Settings einstellen kann.
    20. End Sub
    21. End Class


    Also im groben funktioniert es... allerdings halt nur die Transparents nicht ?(

    PlatinSecurity schrieb:

    VB.NET-Quellcode

    1. Form2.Show()
    Da gugst Du erst mal Dialoge: Instanziierung von Forms und Aufruf von Dialogen.
    ===================
    Die Opacity ist ein Double-Wert, der von 0 bis 1 geht. 0 ist unsichtbar (voll durchsichtig), 1 ist undurchsichtig.
    Sinnigerweise wird dieser Wert im Designer als ein Prozentwert von 0 bis 100 angezeigt.
    Wenn Du dies entsprechend berücksichtigst, wird die Nachbarin wieder mit Dir reden. :D
    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!
    Habe mal versucht...

    Also das der Wert "35" so hier in die Opacity eingetragen wird >> 0.35 <<

    Geht leider genau so wenig.
    0 = Unsichtbar

    0.35 = Leicht Transparent - Oder ?

    1 = 100% Sichtbar

    EDIT (Erledigt):
    Habe vergessen das so hier zu machen ... "Wert / 100" ... Jetzt geht es mit diesem Code:

    VB.NET-Quellcode

    1. Me.Opacity = My.Settings.transparents / 100
    2. 'oder auch von einer anderen Form
    3. Form1.Opacity = My.Settings.transparents / 100

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

    Wenn eine Form bereits transparent geladen werden soll würde ich die Opacity bereits im Designer auf 0 setzen.
    Ich finde es sieht blöd aus wenn man auf manchen Rechner ganz kurz die Form deckend sehen kann.

    Da man auch in den Settings herumspielen kann und die Einträge manipulieren kann, würde ich auf gültige Werte prüfen bevor Du sie zuweist.

    Edit: Grundsätzlich vermeide ich Form_Load weil Fehler dort im Regelfall zu keiner Ausnahme führen, nimm besser Form_Shown.