2014-09-25 78 views
1

有誰知道如何製作一個代碼,使用淡入/淡出來顯示標籤中的文本。如何在vb.net中使用帶淡入/淡出的標籤顯示消息?

例如:我在裏面有一個表格和一個標籤(VISIBLE = FALSE)。 (如Button1)。

該標籤將變得可見並且它將開始淡入。

也許它只有2秒。 2秒後標籤將變爲VISIBLE = FALSE。提前致謝。

+0

標籤有背景。你想讓標籤淡入/淡出還是隻顯示文字? – 2014-09-25 14:55:10

+0

標籤沒有背景。也許標籤,如果它可以淡入/淡出。 – user3418036 2014-09-25 15:11:57

+0

如果你這麼說... – 2014-09-25 15:43:25

回答

0

這被發現here其中用戶正在尋找一個標籤半透明。我相信你可以從這方面獲得一些好處!

Imports System 
Imports System.Drawing 
Imports System.Windows.Forms 

' <summary> 
' A label that can be transparent. 
' </summary> 
Public Class TransparentLabel 
    Inherits Control 
    ' <summary> 
    ' Creates a new "TransparentLabel" instance. 
    ' </summary> 
    Public Sub New() 
     TabStop = False 
     Dim transparencyValue As Integer = 15 '0 is all transparent, 255 is solid 
     ForeColor = Color.FromArgb(transparencyValue, ForeColor.R, ForeColor.G, ForeColor.B) 
    End Sub 

    ' <summary> 
    ' Gets the creation parameters. 
    ' </summary> 
    Protected Overrides ReadOnly Property CreateParams() As CreateParams 
     Get 
      Dim cp As CreateParams = MyBase.CreateParams 
      cp.ExStyle = cp.ExStyle Or &H20 
      Return cp 
     End Get 
    End Property 

    ' <summary> 
    ' Paints the background. 
    ' </summary> 
    ' <param name="e">E.</param> 
    Protected Overrides Sub OnPaintBackground(ByVal e As PaintEventArgs) 
     ' do nothing 
    End Sub 

    ' <summary> 
    ' Paints the control. 
    ' </summary> 
    ' <param name="e">E.</param> 
    Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs) 
     Using brush As SolidBrush = New SolidBrush(ForeColor) 
      e.Graphics.DrawString(Text, Font, brush, -1, 0) 
     End Using 
    End Sub 

End Class 

編輯

研究的一個短位後,this從代碼項目出現。它將圖像設置爲半透明。

有了這個,結合timer應該可以讓你生成你正在尋找的東西。

所以,在time_Tick事件中,有你的'淡入淡出的代碼'。在不透明度達到0之後,只需停止定時器並重置即可。 :)

編輯的編輯

this link是一個討論板,討論如何做到這一點(希望)。

+0

好吧謝謝生病嘗試。它真的看起來很有用:) – user3418036 2014-09-25 15:00:55

+0

如果你可以使用WPF,它會容易得多,因爲有更多的控件,並且'做你想做的事情'更容易 - 但是winforms更加'可學習',因此它是一個新程序員的出發點。如果可以的話,看一看WPF,並且*會更加容易理解'複雜'的想法。 – 2014-09-25 15:09:34

1

在Winforms中製作視覺效果的一種可靠方法是使用自定義繪圖,理想情況下使用DirectDraw。您可以完全控制繪圖過程。如果你使用Timer解決方法,你會注意到一個不規則/煩人的閃爍。如果您是在動畫製作表單後,WPF是一個很好的建議。看看,WinForms不是爲動畫而建的,這項技術應該在系統資源上很輕,並且可以在非常陳舊和過時的硬件上運行,通過RDP和非常慢的網絡連接。

我知道你在想什麼......「你怎麼能忍受靜態/無聊的灰色灰色的東西?」。那麼事實證明,用戶實際上可以接受這個限制,因爲重要的是你的軟件如何解決他們的問題,而不是多好。至少對於許多商業應用來說這是事實。例如,主要的知名連鎖店仍在使用30年前的DOS式提示,甚至連動畫,鼠標都不在那裏。我還知道加拿大至少有一家保險公司,其中部分功能是純文本界面,所有人都可以。

如果您不開發業務應用程序,WinForms作爲平臺不是一個好選擇。