1

VB.NetWinFormがあり、背景にいくつかの画像があり、タイマーによって5秒ごとに変化します。問題は、それらがすぐに変化し、これが見栄えが良くないことです。フェードイン効果を追加したいのですが、不透明度がのプロパティではないというエラーが発生しました。フォームをフェードすることしかできませんが、それは私が望んでいることではありません。tableLayout.backgroundimage

これが私のコードです:

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    If imageNum > 3 Then
        imageNum = 1
    End If
    Select Case imageNum
        Case 1
            Me.TableLayoutPanel4.BackgroundImage = Global.posta1.My.Resources.Resources.foto1
            For FadeIn = 0.0 To 1.1 Step 0.1
                Me.Opacity = FadeIn
                Threading.Thread.Sleep(100)
            Next
            rd_btn1.Checked = False
            rd_btn2.Checked = True
        Case 2
            Me.TableLayoutPanel4.BackgroundImage = Global.posta1.My.Resources.Resources.foto3
            rd_btn2.Checked = False
            rd_btn3.Checked = True
            For FadeIn = 0.0 To 1.1 Step 0.1
                Me.Opacity = FadeIn
                Threading.Thread.Sleep(100)
            Next
        Case 3
            Me.TableLayoutPanel4.BackgroundImage = Global.posta1.My.Resources.Resources.foto2
            For FadeIn = 0.0 To 1.1 Step 0.1
                Me.Opacity = FadeIn
                Threading.Thread.Sleep(100)
            Next
            rd_btn3.Checked = False
            rd_btn1.Checked = True
    End Select
    imageNum = imageNum + 1
End Sub
4

2 に答える 2

0

私が知る限り、単一のコントロールの不透明度を設定することはできません。コントロールを自分で描画することで設定できるかもしれませんが、自分でコントロールを描画することについての知識がないため、それについて調査する必要があります..

于 2012-09-08T22:03:39.310 に答える
0

私は初心者ですが、これを行うには(PaintEventArgsコントロールのペイントイベントの引数を使用して)描画することがうまくいくと思います:

  • 古い絵と新しい絵の両方を描きます。

  • 古い pic のアルファ値を小さくし、新しい pic の alha 値を増やして0.01.0

これが役に立ったことを願っています。そうでない場合は申し訳ありません。

;)

于 2013-03-25T19:32:44.993 に答える