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

问题描述

我创建了一个MDI程序,然后显示一个MDI子窗体,然后一个问题。例如在1366*768分辨率下,无法创建一个300*1024尺寸的窗体。1024高于屏幕分辨率的768。窗体倒是会显示,只是下面的部分被截断了。各位达人,有什么方式可以解决么。

解决方案

解决方案二:
你自己这不是很清楚吗,尺寸比屏幕大,肯定遮住了不被遮住,就限制大小在屏幕范围内
解决方案三:
子窗子的大小要根据屏幕的大小改变而改变,这样才能显示出来。有获取屏幕大小的方法,可以搜一下。
解决方案四:
引用1楼bdmh的回复:

你自己这不是很清楚吗,尺寸比屏幕大,肯定遮住了不被遮住,就限制大小在屏幕范围内

不是被遮住,而是说被截断了。例如代码里设置mdiClient.Height=1000;最后获取其高度,并不是1000,而是768+16(后面的16会根据不同的分辨率略有不同,有时是12)
解决方案五:
引用2楼duanzi_peng的回复:

子窗子的大小要根据屏幕的大小改变而改变,这样才能显示出来。有获取屏幕大小的方法,可以搜一下。

其实http://bbs.csdn.net/topics/60054781这个帖子讲述的和我是同一个问题,最后也没有什么好点的方式。
解决方案六:
引用楼主mmcer的回复:

我创建了一个MDI程序,然后显示一个MDI子窗体,然后一个问题。例如在1366*768分辨率下,无法创建一个300*1024尺寸的窗体。1024高于屏幕分辨率的768。窗体倒是会显示,只是下面的部分被截断了。各位达人,有什么方式可以解决么。

换个思路窗体大小还是按屏幕分辨率来创建,窗体内元素使用Panel布局,Panel可以自适应分辨率产生滚动条的。
解决方案七:
屏幕内创建的窗体,应该符合实际屏幕的分辨率.
解决方案八:
引用5楼lovelj2012的回复:

Quote: 引用楼主mmcer的回复:
我创建了一个MDI程序,然后显示一个MDI子窗体,然后一个问题。例如在1366*768分辨率下,无法创建一个300*1024尺寸的窗体。1024高于屏幕分辨率的768。窗体倒是会显示,只是下面的部分被截断了。各位达人,有什么方式可以解决么。

换个思路窗体大小还是按屏幕分辨率来创建,窗体内元素使用Panel布局,Panel可以自适应分辨率产生滚动条的。

处于实际的业务原因,子窗体的尺寸必须是1:1的,根据屏幕分辨率做缩放,会导致业务上的精度丢失。
解决方案九:
引用7楼mmcer的回复:

Quote: 引用5楼lovelj2012的回复:
Quote: 引用楼主mmcer的回复:
我创建了一个MDI程序,然后显示一个MDI子窗体,然后一个问题。例如在1366*768分辨率下,无法创建一个300*1024尺寸的窗体。1024高于屏幕分辨率的768。窗体倒是会显示,只是下面的部分被截断了。各位达人,有什么方式可以解决么。

换个思路窗体大小还是按屏幕分辨率来创建,窗体内元素使用Panel布局,Panel可以自适应分辨率产生滚动条的。

处于实际的业务原因,子窗体的尺寸必须是1:1的,根据屏幕分辨率做缩放,会导致业务上的精度丢失。

devexpress有一个不错的控件:SplitContainerControl可以上下或者左右调整块区工作区的大小,可以尝试一下,看是否解决你的这种“窘境”。
解决方案十:
有没有解决思路?
解决方案十一:
参考:在子窗体内拖一个Panel,然后设置成你想要的尺寸(比Form稍微小一点,因为可能还要考虑窗体的边框等),Location设置成0,0,Dock设置成None,然后窗体属性设置为:AutoScaleMode=NoneAutoScroll=TrueAutoSize=TrueWindowState=Maximized引用9楼mmcer的回复:

有没有解决思路?

解决方案十二:
出滚动条呀,把窗体或容器的AutoSrcollMinSize属性值设置为你的界面需要的最小尺寸,当窗口大小小于这个尺寸的时候,就出来滚动条了。

时间: 2024-08-03 03:54:48

MDI子窗体尺寸如何超过屏幕分辨率的相关文章

保证相同类型的MDI子窗体只会被打开一次的方法

看到论坛中有朋友问,如何可以保证在 MDI主窗体中,同一类型的子窗体只能打开一次,再 打开只是将原来打开的窗体激活.这个要求我以前写程序的时候也遇到过.我实现的基本思路 是: 一般每个子窗体都是继承自 Form类型,不同子窗体分别代表不同的功能,因此只需要判断 当前 MDI打开的子窗体的类型中有没有当前需要打开的子窗体类型就行了,如果有,则直接激 活,如果没有则创建一个并加到主窗体中.具体实现起来有很多种办法,这里只写出一个利用 泛型的实现: /// <summary> /// 打开MDI子窗

Delphi中在DLL动态链接库中封装VCL的MDI子窗体

不多说了,看代码就应该明白了,曾经我遇到的问题,现在放出来大家共享! 这里是工程文件的部分: 在DLL中封装MDI子窗体需要重写DLL入口函数,具体代码如下: 1var 2 DllApp: TApplication;//定义保存原DLL的TApplication对象 3 DllScr: TScreen;//定义保存原DLL的TScreen对象 4 5procedure UnProcDll(Reason: Integer); register; 6//重新定义DLL入口函数 7begin 8 if

vb.net 中MDI子窗体对其父窗体属性的获取与修改

兄弟前些日子做项目,第一次使用vb.net,碰上不少问题,相信很多初学者多多少少都会遇到这些问题,为了初学者学习方便,小弟总结了一些小经验,供大家参考讨论.第一篇:如何在MDI子窗体中控制父窗体的属性等等 功能:比如打开一个子窗体后,就要设置父窗体中的某个菜单项或者按钮为不可见状态,诸如此类. 内容:MDI父窗体和MDI子窗体类定义如下:MDI父窗体:Class MDIForm Inherits System.Windows.Forms.Form......... 'member mnuMain

vb.net 防止MDI子窗体被多次实例化的四种方法

方法一            可能没有什么实用性,只适合简单项目:       Dim frmTmp As ClassForm        "实现已经设计好了一个称作(类名为)ClassForm的表单              frmTmp = New ClassForm          "在此定义它的一个实例         frmTmp.ShowDialog()                "作为模式窗体显示这样在当前窗体没有关闭以前,其他form上的菜单按钮都不可

如何在MDI子窗体中使用TransparencyKey属性

问题描述 如何在MDI子窗体中使用TransparencyKey属性如果窗体不是MDI子窗体,则可以通过设置TransparencyKey属性使得窗体透明.但如果窗体时MDI子窗体,这个属性就无效了.请教有什么办法使得MDI子窗体透明或其TransparencyKey属性生效. 解决方案 解决方案二: 解决方案三:感觉是来踢馆的解决方案四:是不可以的,让MDI子窗体再穿透MDI主窗体实在有点为难windows了不知为何一定要MDI呢?解决方案五:引用3楼xuzuning的回复: 是不可以的,让M

c# mdi 键盘事件-C#怎么使MDI子窗体响应键盘事件

问题描述 C#怎么使MDI子窗体响应键盘事件 定义了一个父窗体Form1,ismdicontainer设置为true: 定义一个子窗体Form2,将其mdifather设置为Form1,在Form2中编写该窗体的key_down事件,让其捕获shift+F1的按键消息,并且form2的keypreview属性设置为True,运行程序,按下shift+F1组合键,发现不能捕捉到该键盘事件. 将父窗体Form1的keypreview属性设置为True,同样Form1中编写Form1的key_down

单例模式——解决MDI子窗体实例化的问题

                机房收费系统进行有一段时间了,但是始终有些历史遗留问题.比如,如何MDI子窗体如何显示在上层的问题和MDI子窗体实例化的问题.         对于如何显示在上层的问题,这次采用的还是SetParent函数,在模块里面添加: <span style="font-size:18px;"><span style="font-size:18px;"> '定义一个用来设置子窗体的函数 Declare Function

c#mdi子窗体

问题描述 怎样让mdi子窗体启动时充满主窗体? 解决方案 解决方案二:childWindows.location.x=0;childWindows.location.y=0;childWindows.width=parentWindows.width;childWindows.height=parentWindows.height;解决方案三:Mdi窗体的WindowsState属性设置Maximized解决方案四:同意heyafeng实际上在MDI窗体中,子窗体应该比父窗体小,而不是一样的大小

C# mdi子窗体FormBorderStyle=none,在show出窗体时为什么标题栏会闪一下?

问题描述 C# mdi子窗体FormBorderStyle=none,在show出窗体时为什么标题栏会闪一下? C# mdi子窗体FormBorderStyle=none,在show出窗体时为什么标题栏会闪一下?