繁体   English   中英

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

[英]Winforms application shows differently on different computers when using Infragistics components and resizing routines

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

我正在用尽测试来找出我们可能会出错的地方; 所有计算机都以各种屏幕分辨率运行Windows 7。

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

编辑:一些例子。 在“破损”的笔记本电脑上,某些选项卡(UltraWinTab的一部分)无效,并且在最小化/还原命令后不会重绘,您只会得到该选项卡的背景,而没有组件。

莫名其妙地绘制了一些其他控件,它们的尺寸要小得多(代替填充该区域,我得到了大的底部和右侧空白区域)。

我们也有这个问题。 带有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)));
}

因为我们在SplitContainers上具有Infragistics控件(网格,停靠管理器)。 也许Infragistics控件具有很深的嵌套级别,因此比其他控件要早得多。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM