关于C#应用程序分辨率自适应的问题 我做了2个管理系统的应用程序,发现个问题,用台式机(1680*1050分辨率)做完了之后安装到笔记本上(小的分辨率),控件就会发生变形,最右边的TextBox控件都看不到了,或者只能看见一半,数据库的控件会变的非常小,我感觉是C#控件无法达到系统分辨率的自适应,不知道怎么解决,我想达到的效果,就是应用软件做完之后不管在什么样的分辨率下安装运行,都是正常显示,就是控件和窗体会跟随电脑的分辨率从自动的变化。跪求高手解决 谢谢啦先 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 控件本身一般都不会有这种自动适应屏幕大小的功能,而是通过你的程序来控制的,一般我的做法是这样的:首先,在设计时,对于对话框这类固定大小的窗体,应该尽可能按目前较为流行的分辨率大小来设计,或者参考现有的比较成熟的对话框大小,比如Windows资源管理器里文件的属性对话框。而对于主窗体来说,这类窗口通常大小是可变的,因此控件的布局应能够适应窗口大小的变化。.net为我们提供了两个非常好用的属性,一个是Dock,一个是Anchor,如果你还不了解它们的话,可以查一下MSDN中的帮助信息。通过这两个属性的设置,可以使大多数控件实现位置和大小自适应而不需要写一行代码。在这样的前提下,你要做的就是控制好窗口的大小就可以了。要使窗口可以适应屏幕的分辨率,必须要获取到当前屏幕的大小,可以通过Screen这个类获得,再进行一些简单的计算就可以了,比如窗口大小为屏幕工作区域的三分之二,并保持窗口位于屏幕的正中间等。另外,如果想要程序打开时,窗口的位置和大小与上一次关闭时的一样,就可以在退出程序时把窗口的大小位置信息写入一个配置文件里(可以直接使用Settings类),在而在下一次打开时从配置文件里取出这些信息。 使用dock,设置Acchor属性判断分辨率 在不同分辨率下调整控件坐标窗体加载resize时改变坐标 你那二台机子操作系统的语言应该是不一样的吧~把Form的这个属性设置成这样子就可以了。默认的应该是AutoScaleMode.Font.this.AutoScaleMode = AutoScaleMode.Dpi; 问题是这样的,我在台式机上做了一个窗口,这个窗口上放了很多控件,窗口机会是整个桌面那么大。现在程序做好了,我把程序移植到笔记本上,由于笔记本的显示器小,原来在台式机上可以看到的控件有些不能在笔记本的显示器上看到。即使将窗口最大化也没用,我想问一下我该怎样做才能使笔记本窗口显示全部的控件呢?[http://topic.csdn.net/u/20100309/16/9c846aed-cfc3-4312-9901-6c27e4bbcd8e.html] 这个问题很麻烦,以前碰到过一次,用dock,Acchor和resize解决了,不过很不理想,添加新控件时维护非常麻烦,建议楼主不要去解决这个问题, 和笔记本窗口大小没关系,只是和分辨率相关,在UI设计时,需要利用上面提到控件的dock、Acchor相关属性做好布局。 C# 委托 datatable赋值时索引超出范围 怎么用代码实现窗体跳转? 能否实现按钮按下后不弹起,再点击时才弹起? 关于报表的报头及小计 老问题:拖放、DataGrid、EXCEL操作。。高手进。。 高手們,问个问题:在toolStrip控件上,我新增一个作删除按钮,可以实现删除功能,我现在想做一个快捷键,比如F4,按F4 出同样也可以实现删除功能。要怎么实现? 怎么做到两个窗口同时运行呢? com对象不能在c#中引用 如何检索打印机是忙还是空闲? 如何在windows服务中启动一个.exe程序,并且该exe的用户名为当前用户 求教大大们一个TabControl的tabpage切换的问题
首先,在设计时,对于对话框这类固定大小的窗体,应该尽可能按目前较为流行的分辨率大小来设计,或者参考现有的比较成熟的对话框大小,比如Windows资源管理器里文件的属性对话框。而对于主窗体来说,这类窗口通常大小是可变的,因此控件的布局应能够适应窗口大小的变化。
.net为我们提供了两个非常好用的属性,一个是Dock,一个是Anchor,如果你还不了解它们的话,可以查一下MSDN中的帮助信息。通过这两个属性的设置,可以使大多数控件实现位置和大小自适应而不需要写一行代码。在这样的前提下,你要做的就是控制好窗口的大小就可以了。
要使窗口可以适应屏幕的分辨率,必须要获取到当前屏幕的大小,可以通过Screen这个类获得,再进行一些简单的计算就可以了,比如窗口大小为屏幕工作区域的三分之二,并保持窗口位于屏幕的正中间等。另外,如果想要程序打开时,窗口的位置和大小与上一次关闭时的一样,就可以在退出程序时把窗口的大小位置信息写入一个配置文件里(可以直接使用Settings类),在而在下一次打开时从配置文件里取出这些信息。
判断分辨率
在不同分辨率下调整控件坐标
窗体加载resize时改变坐标
默认的应该是AutoScaleMode.Font.
this.AutoScaleMode = AutoScaleMode.Dpi;