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

And*_*rea 2 compatibility infragistics winforms

我正在使用Winforms开发GUI.大多数测试计算机上的一切看起来都很好(例如,UI以相同的方式显示,因此显示在开发GUI的电脑上).但是,在一台笔记本电脑上,会发生几个元素无法正确显示(尺寸错误或重绘问题).

我用完了测试来弄清楚我们可能出错了什么; 所有计算机都以各种屏幕分辨率运行Windows 7.

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

编辑:一些例子.在"损坏的"笔记本电脑上,某些选项卡(UltraWinTab的一部分)无效,并且在最小化/恢复命令后不重绘,您只获得选项卡的背景但没有组件.

其他一些控件莫名其妙地以更小的尺寸绘制(而不是填充区域,我得到大的空底和右边的乐队).

Ger*_*old 5

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

当然,首先我认为它与Infragistics有关,但我在任何论坛上都找不到任何线索.最后我偶然发现了这个链接,其中解释说,除了某个控件的嵌套层次结构之外,不再触发调整大小事件.

我们有一个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)));
}
Run Code Online (Sandbox Code Playgroud)

因为我们在SplitContainers上有Infragistics控件(网格,停靠管理器).也许Infragistics控件具有较深的嵌套级别,使其比其他控件更快地发生.