我做了2个管理系统的应用程序,发现个问题,用台式机(1680*1050分辨率)做完了之后安装到笔记本上(小的分辨率),控件就会发生变形,最右边的TextBox控件都看不到了,或者只能看见一半,数据库的控件会变的非常小,我感觉是C#控件无法达到系统分辨率的自适应,不知道怎么解决,我想达到的效果,就是应用软件做完之后不管在什么样的分辨率下安装运行,都是正常显示,就是控件和窗体会跟随电脑的分辨率从自动的变化。
跪求高手解决  谢谢啦先

解决方案 »

  1.   

    控件本身一般都不会有这种自动适应屏幕大小的功能,而是通过你的程序来控制的,一般我的做法是这样的:
    首先,在设计时,对于对话框这类固定大小的窗体,应该尽可能按目前较为流行的分辨率大小来设计,或者参考现有的比较成熟的对话框大小,比如Windows资源管理器里文件的属性对话框。而对于主窗体来说,这类窗口通常大小是可变的,因此控件的布局应能够适应窗口大小的变化。
    .net为我们提供了两个非常好用的属性,一个是Dock,一个是Anchor,如果你还不了解它们的话,可以查一下MSDN中的帮助信息。通过这两个属性的设置,可以使大多数控件实现位置和大小自适应而不需要写一行代码。在这样的前提下,你要做的就是控制好窗口的大小就可以了。
    要使窗口可以适应屏幕的分辨率,必须要获取到当前屏幕的大小,可以通过Screen这个类获得,再进行一些简单的计算就可以了,比如窗口大小为屏幕工作区域的三分之二,并保持窗口位于屏幕的正中间等。另外,如果想要程序打开时,窗口的位置和大小与上一次关闭时的一样,就可以在退出程序时把窗口的大小位置信息写入一个配置文件里(可以直接使用Settings类),在而在下一次打开时从配置文件里取出这些信息。
      

  2.   

    使用dock,设置Acchor属性
    判断分辨率   
    在不同分辨率下调整控件坐标
    窗体加载resize时改变坐标
      

  3.   

    你那二台机子操作系统的语言应该是不一样的吧~把Form的这个属性设置成这样子就可以了。
    默认的应该是AutoScaleMode.Font.
    this.AutoScaleMode = AutoScaleMode.Dpi;
      

  4.   

    问题是这样的,我在台式机上做了一个窗口,这个窗口上放了很多控件,窗口机会是整个桌面那么大。现在程序做好了,我把程序移植到笔记本上,由于笔记本的显示器小,原来在台式机上可以看到的控件有些不能在笔记本的显示器上看到。即使将窗口最大化也没用,我想问一下我该怎样做才能使笔记本窗口显示全部的控件呢?[http://topic.csdn.net/u/20100309/16/9c846aed-cfc3-4312-9901-6c27e4bbcd8e.html]
      

  5.   

    这个问题很麻烦,以前碰到过一次,用dock,Acchor和resize解决了,不过很不理想,添加新控件时维护非常麻烦,建议楼主不要去解决这个问题,
      

  6.   

    和笔记本窗口大小没关系,只是和分辨率相关,在UI设计时,需要利用上面提到控件的dock、Acchor相关属性做好布局。