星期六

解决.net绘制的 WinForm 在 windows7下变形的方法。
问题描述:
一个winform的系统,我和同事通过vss共同开发,同事的系统是XP,我的系统是windows7,开发工具都是vs.net2008 sp1。
奇怪的是程序的主界面在同事的机器上正常,在他的vs.net设计视图中也显示正常,而到了我这里有的控件高度比设定的高度多出1-8个像素,f5运行也和实际效果不一样比实际效果大,查看 frmBase.designer.cs,里面控件的高度确实是原先设置的正确高度,但把vs.net切换到设计视图,这个控件高度就变大了,从“属性”窗口中看它的值也变大了。
以前也出现过这种问题,最后在我的机器(windows7)下重新调整各控件的高度,这才使软件在xp和windows7下运行的界面大小一致。但最近这个问题有出现了,不知道是怎么回事。

解决方法:
1、将主窗体的 AutoScaleMode  属性设置为 None,CTRL+S保存一下,在将其关闭。
2、打开主窗体的 xxx.designer.cs,找到 InitializeComponent 方法中的倒数第二行“ this.ResumeLayout(false);”,将其删除。
3、在打开主窗体,此时的控件大小就是designer.cs设置的大小。随便找个控件,用鼠标拖动其改变大小,然后在手工把大小设置为原来的大小。这样做的目的是让vs.net更新designer.cs并创建“this.ResumeLayout(false);”。
4、搞定了,界面在xp和windows7上完全一样。

posted on 2009-09-23 18:39  星期六  阅读(722)  评论(0编辑  收藏  举报