使用 Infragistics 组件和调整例程大小时,Winforms 应用程序在不同计算机上的显示不同

标签 winforms compatibility infragistics

我正在使用 Winforms 开发 GUI。在大多数测试计算机上,一切看起来都很好(例如,UI 以相同的方式显示,并根据开发 GUI 的计算机而显示)。但是,在一台笔记本电脑上,可能会出现多个元素无法正确显示的情况(尺寸错误或重绘时出现问题)。

我已经没有足够的测试来找出我们可能出错的地方;所有计算机都在不同的屏幕分辨率下运行 Windows 7。

我正在使用 Infragistics 组件来构建 UI。有什么想法吗?

编辑:一些例子。在“损坏的”笔记本电脑上,某些选项卡(UltraWinTab 的一部分)在最小化/恢复命令后无效且不会重新绘制,您只能看到选项卡的背景,而没有任何组件。

其他一些控件莫名其妙地以小得多的尺寸绘制(我没有填充该区域,而是得到了大的空白底部和右侧带)。

最佳答案

我们也遇到过这方面的问题。具有 Infragistics 控件的 Windows.Forms 应用程序在 Windows XP 上看起来不错,但在 W7 上开始出现各种大小调整问题。我花了很长时间才弄清楚发生了什么。

当然,首先我认为它与 Infragistics 有关,但我在任何论坛上都没有找到任何线索。最后我偶然发现了this link ,其中解释了超出一定的控件嵌套层次结构后,不再触发调整大小事件。

我们有一个 UI 框架,对我们来说,使用此覆盖创建 System.Windows.Forms.SplitContainer 的派生就足够了:

// HACK: under Windows7, controls do not always redraw to their whole rectangle after restoring their size.
protected override void OnSizeChanged(EventArgs e)
{
    if (Handle != null) // Can be null because the event is invoked before the handle is created.
        BeginInvoke((MethodInvoker)(() => base.OnSizeChanged(e)));
}

因为我们在 SplitContainers 上有 Infragistics 控件(网格、停靠管理器)。也许 Infragistics 控件具有很深的嵌套级别,使得这种情况比其他控件更快发生。

关于使用 Infragistics 组件和调整例程大小时,Winforms 应用程序在不同计算机上的显示不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7583699/

相关文章:

c# - 图片框 图片框

c# - 后台按键监听器

installation - 在 CentOS 8 上安装 CentOS Web 面板 (CWP)

jquery - 使用 jQuery 中的复合主键更新 infragistics igGrid

c# - 使用 DevExpress 或 Infragistics 将 HTML 或 PDF 转换为 RTF/DOC 或将 HTML/PDF 转换为图像

c# - 如何在显示后立即安全关闭表单?

c# - 有什么方法可以在显示之前加载所有 UI 控件吗? C# 窗体

c++ - C++ 二进制代码能否通过 native C 接口(interface)变得可移植?有什么限制?

HTML CSS 样式高度 :100% Works fine in chrome but not in IE or Firefox [becoming crazy! ]

c# - 在网格 C# 中显示完整的日期时间