none
c# 隐藏窗体问题 RRS feed

  • 问题

  • 在窗体中点击按钮将本窗体的visible设置为false。在有些比较慢的计算机中有时出现该窗体没有隐藏问题。但是visible属性确实设置为false。

    2010年7月21日 8:28

全部回复

  • 改用 ShowWindow(this.IntPtr, SW_HIDE),设置 Visible 属性实际上就是调用 Control.Hide(),而 Hide() 实际上也是调用 ShowWindow 函数。

    有可能是调用 ShowWindow 的时候内存不足,检查 GetLastError() 是不是 0,看看是否有 Win32 错误发生。


    Mark Zhou
    2010年7月21日 8:43
  • ShowWindow(this.IntPtr, SW_HIDE)方法是否也会出现上述问题

    2010年7月22日 8:39
  • 在极端情况下也会出现,比如内存不足,就会导致窗体无法显示,并引发 E_OUTOFMEMORY 类似的 Win32 异常。但这是极罕见的,对于现在的 PC 配置来说,基本上不会遇到这个问题。
    Mark Zhou
    2010年7月22日 9:13
  • 使用ShowWindow还是有失败,GetLastError为0。Visiable值为true。

    2010年7月24日 7:04
  • 会不会是在private void Form1_VisibleChanged(object sender, EventArgs e)事件里有导致延迟的代码?
    2010年7月24日 11:37
  • 没有使用使用该事件

    2010年7月26日 1:53