none
Transparenz von den Fenstern Stufenweise höher stellen! RRS feed

  • Frage

  • Hallo!

    Das Fenster meines Programms soll nicht so langweilig wie jedes andere erscheinen, sondern soll sich langsam einblenden (und wieder ausblenden). Ich hab das irgendwie schon mit der Form-Eigenschaft "Opacity" ausprobiert, jedoch sieht man kein Unterschied, wenn man folgenden Code benutzt:
    For Transparenz = 0 To 100 step 5
    Me.opacity = Me.opacity + 5
    Next
    Dabei müsste das Fenster eigentlich stufenweise immer weniger Transparent werden, bis es dann bei 100 ist (undurchsichtig).
    Ich habe auch schon versucht, die Transparenz mithilfe einer Trackbar und eines Textfeldes einzustellen:
    Me.Opacity = Trackbar1.Value
    und...

    Me.Opacity = Textfeld1.Text
    Jedoch verschwindet bei diesen beiden Methoden nur das Fenster, wenn man die Eigenschaft über die Trackbar bzw. das Textfeld auf 0 stellt. Sonst passiert nichts.

    Über Antworten würde ich mich sehr freuen!

    Björn
    Mittwoch, 10. Februar 2010 20:23

Antworten

  • Hallo Björn,

    Schau mal den folgenden Code an. Vielleicht hilft er Dir weiter.

    Public Class Form1
       
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Me.Opacity = 1
        End Sub
    
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim iCount As Integer
    
            For iCount = 100 To 10 Step -10
                Me.Opacity = iCount / 100
                Me.Refresh()
                Threading.Thread.Sleep(50)
            Next
    
            '//wieder zurueck
            For iCount = 10 To 100 Step 10
                Me.Opacity = iCount / 100
                Me.Refresh()
                Threading.Thread.Sleep(50)
            Next
    
        End Sub
    End Class




    Grüße,

    Robert

    Donnerstag, 11. Februar 2010 09:23
  • Hi,

    Opacity geht nicht von 0 bis 100, sondern von 0 bis 1. Du müsstest also in deinem Beispiel schreiben:

    me.opacity = me.opacity + 0.05

    mfg
    Imperium_Romanum
    MAY THE SOURCE BE WITH YOU!
    Donnerstag, 11. Februar 2010 11:39

Alle Antworten

  • Hallo Björn,

    Schau mal den folgenden Code an. Vielleicht hilft er Dir weiter.

    Public Class Form1
       
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Me.Opacity = 1
        End Sub
    
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim iCount As Integer
    
            For iCount = 100 To 10 Step -10
                Me.Opacity = iCount / 100
                Me.Refresh()
                Threading.Thread.Sleep(50)
            Next
    
            '//wieder zurueck
            For iCount = 10 To 100 Step 10
                Me.Opacity = iCount / 100
                Me.Refresh()
                Threading.Thread.Sleep(50)
            Next
    
        End Sub
    End Class




    Grüße,

    Robert

    Donnerstag, 11. Februar 2010 09:23
  • Hi,

    Opacity geht nicht von 0 bis 100, sondern von 0 bis 1. Du müsstest also in deinem Beispiel schreiben:

    me.opacity = me.opacity + 0.05

    mfg
    Imperium_Romanum
    MAY THE SOURCE BE WITH YOU!
    Donnerstag, 11. Februar 2010 11:39
  • Hallo Björn,

    Ich gehe davon aus, dass die Antworten Dir weitergeholfen haben.
    Solltest Du noch "Rückfragen" dazu haben, so gib uns bitte Bescheid.

    Grüße,
    Robert

    Montag, 15. Februar 2010 16:36
  • Danke, die Antworten haben mir sehr geholfen. Danke!
    Dienstag, 16. Februar 2010 17:06