【问题标题】:Buttons are not visible in winform application按钮在 winform 应用程序中不可见
【发布时间】:2011-05-19 05:55:36
【问题描述】:

我们这里有一个奇怪的问题。 我们有一个win-form应用程序。该应用程序有一个带有几个文本框、组合框和 3 个按钮的选项卡式表单。该应用程序在大多数机器上运行良好,但在 1 台机器上按钮不可见。 其余一切正常。只是按钮是不可见的。但是该按钮存在,因为我能够使用选项卡触发事件并输入。 我们检查了日志。但找不到记录的任何异常。 我们检查了各种分辨率,但没有帮助。

有什么帮助吗?

按钮位于屏幕底部任务栏的正上方。任务栏可见。 我们已经检查了 dotnet 框架的工作。它很好 在 Vista 机器中发现问题

提前致谢

【问题讨论】:

  • 很抱歉..问题仅在 1 台机器中发现..那是 Vista..我们也检查了 dotnet 框架的工作原理..问题出现在 HP Elite Book 8400 P 中
  • 可能机器上的DPI设置不标准?看这里:blogs.msdn.com/b/patricka/archive/2010/04/15/…
  • 如果您单击它应该在的区域,该按钮是否工作?莫非按钮的颜色和背景颜色一样?
  • 我无法添加更多信息,因为在我们的远程客户端机器中发现了问题。
  • 所有按钮都是不可见的吗?如果在窗口顶部添加一个新按钮会发生什么?该测试可以排除 DPI 和布局问题。如果您在按钮上绘制图像,可以尝试将其外观更改为纯背景色,以排除渲染问题。

标签: c# .net winforms button controls


【解决方案1】:

我的猜测是一台机器具有不同的 DPI 设置。可能是按钮比预期的更向下推,导致按钮消失在表单边框下方?

另外,我会检查按钮的 Anchor 属性以查看它们的锚定位置,以及它们没有被奇怪的窗口大小移动到其他东西后面。

【讨论】:

    【解决方案2】:

    可能是按钮不包含在按钮顶部的选项卡中。尝试使选项卡(或各种其他控件)不可见,以确保按钮不会被遮挡。

    【讨论】:

      【解决方案3】:

      在我们使用的 FlowLayouPanel 上将 WrapContents 设置为 false,修复了一个非常相似的问题。 按钮靠近对话框的底部边缘,在某些显示器分辨率下会消失。我认为 WrapContents=false 剪辑按钮而不是完全删除它们。

      【讨论】:

        【解决方案4】:

        在我的例子中,我有登录面板,它的高度取决于主窗体大小,例如高度是窗体大小 * 0.1。

        修复方法是通过设置 loginPanel.AutoSize = true; 使登录面板根据其组件调整其大小;

        【讨论】:

          猜你喜欢
          • 2022-01-01
          • 2017-01-23
          • 1970-01-01
          • 1970-01-01
          • 2011-05-15
          • 1970-01-01
          • 2014-07-16
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多