在运行时在VB.Net中设置Splashscreen背景图像

时间:2011-03-08 20:47:02

标签: vb.net

我的程序有一个启动画面,我希望每次打开程序时都会改变背景图像 我看到这样做的一种方法是从ImageList加载它,但最大图像大小为256x256。
启动画面为498 x 305,这意味着我需要找到除ImageList之外的其他内容,但希望能够以类似的方式组织图像。
我确实尝试将它们放入资源中,但是没有能够设置背景而不会出错,我宁愿不要让30张图像混乱。

1 个答案:

答案 0 :(得分:1)

我只想从数据库中取出它。

BackgroundImage = My.Resources.splash1 

有效,但我找不到改变它的好方法,除了要有一个包含巨大选择案例的函数。

Select Case iSplash
    Case 1
        Return My.Resources.splash1
    Case 2
        Return My.Resources.splash2
etc...

所以我的最终解决方案,万一其他人需要这样做:

Function splashimage(ByVal int As Integer) As System.Drawing.Image
    On Error GoTo sError

    Dim rSelect As New ADODB.Recordset
    Dim sSql As String = "Select * From tblSplashImages Where SplashID = " & int
    Dim ms As IO.MemoryStream
    Dim img As System.Drawing.Image
    img = Nothing

    With rSelect
        .Open(sSql, MyCn, ADODB.CursorTypeEnum.adOpenForwardOnly, ADODB.LockTypeEnum.adLockOptimistic)
        If Not .EOF Then
            ms = New IO.MemoryStream(CType(.Fields!Data.Value, Byte()))
            img = System.Drawing.Image.FromStream(ms)
        Else
            img = My.Resources.tracks1
        End If
        .Close()
    End With

    Return img
sError:
    MsgBox(ErrorToString, MsgBoxStyle.Exclamation)
End Function