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