0

我有一个带有一些控件的Winforms,主窗体有一个大图片作为背景,并启用了一个BackgroundImageLayout属性。Stretched

主要问题是由于背景图像,调整大小操作变得缓慢。

问题是调整具有图片和 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大小的缓慢和烦人的影响的任何想法?

编辑

为了了解我的问题,应用程序是这样的:

在此处输入图像描述

4

1 回答 1

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

这将在您的表单中绘制控件,并在所有控件加载后使表单可见并避免闪烁。

于 2013-12-14T16:44:06.803 回答