MDI子窗体尺寸如何超过屏幕分辨率

小萝莉和大白兔 2014-11-11 05:28:52
我创建了一个 MDI 程序,然后显示一个 MDI 子窗体,然后一个问题。例如在 1366*768 分辨率 下,无法创建一个 300*1024 尺寸的窗体。1024 高于 屏幕分辨率的 768 。

窗体倒是会显示,只是下面的部分被截断了。

各位达人,有什么方式可以解决么。
...全文
312 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
software_artisan 2014-11-15
  • 打赏
  • 举报
回复
出滚动条呀,把窗体或容器的AutoSrcollMinSize属性值设置为你的界面需要的最小尺寸,当窗口大小小于这个尺寸的时候,就出来滚动条了。
save4me 2014-11-13
  • 打赏
  • 举报
回复
参考: Designing a Windows Form where size exceeds your screen’s resolution 在子窗体内拖一个Panel,然后设置成你想要的尺寸(比Form稍微小一点,因为可能还要考虑窗体的边框等),Location设置成0,0,Dock设置成None,然后窗体属性设置为: AutoScaleMode = None AutoScroll = True AutoSize = True WindowState = Maximized
引用 9 楼 mmcer 的回复:
有没有解决思路?
江南小鱼 2014-11-12
  • 打赏
  • 举报
回复
引用 7 楼 mmcer 的回复:
[quote=引用 5 楼 lovelj2012 的回复:] [quote=引用 楼主 mmcer 的回复:] 我创建了一个 MDI 程序,然后显示一个 MDI 子窗体,然后一个问题。例如在 1366*768 分辨率 下,无法创建一个 300*1024 尺寸的窗体。1024 高于 屏幕分辨率的 768 。 窗体倒是会显示,只是下面的部分被截断了。 各位达人,有什么方式可以解决么。
换个思路 窗体大小还是按屏幕分辨率来创建,窗体内元素使用Panel布局,Panel可以自适应分辨率产生滚动条的。[/quote] 处于实际的业务原因,子窗体的尺寸必须是1:1的,根据屏幕分辨率做缩放,会导致业务上的精度丢失。[/quote] devexpress有一个不错的控件:SplitContainerControl 可以上下或者左右调整块区工作区的大小,可以尝试一下,看是否解决你的这种“窘境”。
  • 打赏
  • 举报
回复
引用 5 楼 lovelj2012 的回复:
[quote=引用 楼主 mmcer 的回复:] 我创建了一个 MDI 程序,然后显示一个 MDI 子窗体,然后一个问题。例如在 1366*768 分辨率 下,无法创建一个 300*1024 尺寸的窗体。1024 高于 屏幕分辨率的 768 。 窗体倒是会显示,只是下面的部分被截断了。 各位达人,有什么方式可以解决么。
换个思路 窗体大小还是按屏幕分辨率来创建,窗体内元素使用Panel布局,Panel可以自适应分辨率产生滚动条的。[/quote] 处于实际的业务原因,子窗体的尺寸必须是1:1的,根据屏幕分辨率做缩放,会导致业务上的精度丢失。
  • 打赏
  • 举报
回复
有没有解决思路?
zhouxingyu896 2014-11-11
  • 打赏
  • 举报
回复
屏幕内创建的窗体,应该符合实际屏幕的分辨率.
江南小鱼 2014-11-11
  • 打赏
  • 举报
回复
引用 楼主 mmcer 的回复:
我创建了一个 MDI 程序,然后显示一个 MDI 子窗体,然后一个问题。例如在 1366*768 分辨率 下,无法创建一个 300*1024 尺寸的窗体。1024 高于 屏幕分辨率的 768 。 窗体倒是会显示,只是下面的部分被截断了。 各位达人,有什么方式可以解决么。
换个思路 窗体大小还是按屏幕分辨率来创建,窗体内元素使用Panel布局,Panel可以自适应分辨率产生滚动条的。
  • 打赏
  • 举报
回复
引用 2 楼 duanzi_peng 的回复:
子窗子的大小要根据屏幕的大小改变而改变,这样才能显示出来。有获取屏幕大小的方法,可以搜一下。
其实 http://bbs.csdn.net/topics/60054781 这个帖子讲述的和我是同一个问题,最后也没有什么好点的方式。
  • 打赏
  • 举报
回复
引用 1 楼 bdmh 的回复:
你自己这不是很清楚吗,尺寸比屏幕大,肯定遮住了 不被遮住,就限制大小在屏幕范围内
不是被遮住,而是说被截断了。例如代码里设置 mdiClient.Height = 1000; 最后获取其高度,并不是 1000,而是 768+16 (后面的16会根据不同的分辨率略有不同,有时是 12)
exception92 2014-11-11
  • 打赏
  • 举报
回复
子窗子的大小要根据屏幕的大小改变而改变,这样才能显示出来。有获取屏幕大小的方法,可以搜一下。
bdmh 2014-11-11
  • 打赏
  • 举报
回复
你自己这不是很清楚吗,尺寸比屏幕大,肯定遮住了 不被遮住,就限制大小在屏幕范围内

110,580

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧