做了一个winform程序,界面上排列了很多Lable和TextBox,在我自己的电脑上运行好好的,拷贝到别人电脑上,标签和文本框就不是按原有的位置排列,都挤在一起了,文本框把标签遮盖住了我搜索了好久,都没有找到相关资料。求大侠们帮助。谢谢!

解决方案 »

  1.   


    有70多个控件……。 布局控件? 会不会很复杂呀…… 
    而且 我这里由于一些特殊原因 ,不能使用 pannel groupbox 这些东东……。
    那还能怎么布局呢……
      

  2.   

    莫非是两台机器安装的.Net的SP版本不同造成的?
      

  3.   

    还有一种可能是,你用了私有的配置文件(App.Config),这个配置会修改某几个控件的布局,在你的系统上,每次都读取的是你的这个配置文件,而其他电脑上是新建的,取得默认值
      

  4.   

    Application.EnableVisualStyles();//这行删除掉试试看?
      

  5.   

    把Lable和TextBox等控件锁定试试~
      

  6.   


    program.cs中的main函数里面,如果是C#的话
      

  7.   

    1.可以把你的窗体给个固定大小,不让其最大化!2.用FlowLayoutPanel控件
      

  8.   

    如果中英文版的话你的控件的宽度跟长度不能让它按字体自动设置,
    你得把自己设置宽度跟高度,一般宽度见多,所以把AotuSize设成false
    然后设置文字对齐,手动调整宽度(要故意放宽些,大概两个版的文字差不多宽)
    然后设置控件对齐
    OK这样就不会有乱掉了
      

  9.   

    看看这个有没有帮助
    http://blog.csdn.net/wangxiao2008/archive/2009/07/08/4330875.aspx
      

  10.   

    如果不是系统问题,winform一般是不会变形的。
      

  11.   

    问题解决啦…… 谢谢各位大虾的鼎立相助……。特别是@wangxiao2008 这位帅哥or(美女)问题原因:我电脑上的字体对方可能没有,中文系统可能不支持带小数位的size(我的程序form字体大小为8.25pt)
    解决办法:将所有form字体改为Arial, 9pt;(主要原因应该是size)
    为了更保险起见,在每个form的构造函数里加上 this.Font = new Font("Arial", 9)【字体格式视情况而定】总结:以后做系统一定要把字体大小设置为整数!!!
      

  12.   

    楼主说"为了更保险起见,在每个form的构造函数里加上 this.Font = new Font("Arial", 9)"
    其实可以用一下面向对象的三大特性之一:继承.
      

  13.   

    Application.EnableVisualStyles();//删掉这样有用。
    我是正常启动一个主界面,然后使用Process 启动另外一个程序,如果不删上面那句,那么使用Process 启动的程序,界面布局就会乱。将用Process 启动的那个程序的Application.EnableVisualStyles();//删掉 ,就正常了。