我有一些带有一些控件的 Winforms ,并且主要表单的背景很大,启用了BackgroundImageLayout
属性Stretched
。
主要问题是调整大小操作因为慢慢转动 背景图片。
问题是调整具有图片和延伸的BackgroundImageLayout属性的Winforms是一场噩梦!它开始很慢,并且在调整表单大小时所有控件都会闪烁。
我试图减小图像尺寸,但我不能减少图像尺寸。
我也尝试过做这样的事情,但并没有减少烦人的效果:
Private Sub Main_ResizeBegin(sender As Object, e As EventArgs) Handles MyBase.ResizeBegin
GroupBox_Genres.SuspendLayout()
GroupBox_Options.SuspendLayout()
ListBox_Genres.SuspendLayout()
ListView_Elektro1.SuspendLayout()
Me.BackgroundImageLayout = ImageLayout.None
Me.SuspendLayout()
End Sub
Private Sub Main_ResizeEnd(sender As Object, e As EventArgs) Handles MyBase.ResizeEnd
GroupBox_Genres.ResumeLayout()
GroupBox_Options.ResumeLayout()
ListBox_Genres.ResumeLayout()
ListView_Elektro1.ResumeLayout()
Me.BackgroundImageLayout = ImageLayout.Stretch
Me.ResumeLayout()
End Sub
如何解决以大图为背景调整winforms大小的缓慢而恼人的效果的想法?。
修改
为了了解我的问题,应用程序是这样的:
答案 0 :(得分:3)
在表单中使用以下代码以避免形式闪烁,这也可以避免图像闪烁。您无需调整正在使用的图像的大小。
Protected Overrides ReadOnly Property CreateParams() As Windows.Forms.CreateParams
Get
Dim cp As CreateParams = MyBase.CreateParams
cp.ExStyle = cp.ExStyle Or &H2000000
Return cp
End Get
End Property
这将在表单中绘制控件,并在加载所有控件后显示表单,避免闪烁。