我在一个远程桌面应用程序中有一个winform,它是用容器面板动态构建的,用于工具栏上的大(常规)按钮。该应用程序是用C#和.NET 4.0编写的。只有当我没有最大化窗口时,应用程序才会被视为它应该看到的样子(这意味着恢复的视图是好的)。
现在,在RDP登录后-在大多数客户端计算机中-应用程序看起来都很好(即使我们最大化并恢复)。在低分辨率客户端计算机(800x600)中,工具栏上的按钮没有显示在正确的位置(例如在1024x768客户端中)。
我使用了双缓冲,但它没有帮助...问题可能取决于屏幕分辨率,也可能不取决于屏幕分辨率(可能是内存问题或其他原因)。这不是本地化布局的问题。
下图显示了良好状态和不良状态:http://imgur.com/gO4UJ,v7O9K
我能做些什么来解决这个问题?
发布于 2012-11-12 22:38:33
好吧,如果有人遇到这种情况,这就是问题的症结所在:
在窗体中,有一个空的重绘覆盖。创建窗体的程序员用一个空方法重写了重绘(不知道为什么,我想我会向我的团队询问业务逻辑)。
我是如何在开发环境中重现它的?根据Albin Sunnanbo的说明,我在初始化期间以最小化版本运行了RDP应用程序,我注意到在这个用例中,它也发生在大分辨率客户端上……所以,我知道重新绘制是在执行窗口调整大小时发生的-这让我对这个方法产生了怀疑……
顺便说一句,我猜这就是继承如此糟糕的原因,而继续使用==>更好。我花了3天时间才明白为什么会发生这个问题。
https://stackoverflow.com/questions/13342683
复制相似问题