【问题标题】:How to prevent controls from flickering when loading in VB.net?在VB.net中加载时如何防止控件闪烁?
【发布时间】:2013-02-24 22:01:57
【问题描述】:

我目前的 Windows 应用程序存在问题。这是我的问题的视频。

Flickering Problem

如您所见,每次我单击某些按钮并加载控件(选项卡控件和面板)时,它们都会闪烁,看起来很烦人。我怎样才能摆脱这个?我已经尝试将 DoubleBuffer 设置为 true 但仍然无法正常工作。有什么帮助吗?

我还在加载事件中执行了suspendlayout() 和resumelayout(),但仍然无法正常工作。或者可能是因为我编码错误。这是我的代码:

Private Sub frmAdminPanel_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        lblUser.Text = currentUser
        Me.pnlOverview.SuspendLayout()
        Me.tabPayment.Visible = False
        Me.tabClientReporting.Visible = False
        Me.btnNewEntry.Visible = False
        Me.btnPayment.Visible = False
        setOverview()
        Me.pnlOverview.Visible = True
        Me.pnlOverview.ResumeLayout()
    End Sub

【问题讨论】:

标签: windows vb.net controls flicker


【解决方案1】:

如果表单的 Load 事件中有任何代码操作 UI,那么您应该尝试使用 SuspendLayout() 和 ResumeLayout() 来防止闪烁。

【讨论】:

  • 我不知道为什么它被否决了。但我尝试了你的建议。我更新了我的问题。
  • 你能在 resumelayout() 之后尝试 setoverview() 吗?
  • 嗯好的..你可以尝试在调用 load 之前将挂起?
【解决方案2】:

尝试使用BeginUpdateEndUpdate,而不是使用SuspendLayoutResumeLayout

【讨论】:

  • 只需将Me.pnlOverview.SuspendLayout() 替换为Me.pnlOverview.BeginUpdateResumeLayout 相同:Me.pnlOverview.EndUpdate()
猜你喜欢
  • 1970-01-01
  • 2015-04-15
  • 1970-01-01
  • 1970-01-01
  • 2015-09-10
  • 2013-08-04
  • 2020-05-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多