VS2010中怎么让子窗体只能在父窗体中进行最大化和最小化

让子窗体内嵌在父窗体中,只能在父窗体的范围内进行移动,就好像子窗体是父窗体里的一个控件一样,我用的是VB语言编译的。。。。新手,求指教没人答吗。。。。就是让子窗体的移动范... 让子窗体内嵌在父窗体中,只能在父窗体的范围内进行移动,就好像子窗体是父窗体里的一个控件一样,我用的是VB语言编译的。。。。新手,求指教
没人答吗。。。。就是让子窗体的移动范围是在父窗体内,而不是整个WINDOWS屏幕
我要的是方法,或是说,要怎么做才能实现这样的功能,在VS里面没找到设置的地方,也就是说必须要用代码来实现,那代码又该怎么写?在什么事件里写?又怎么让他最大化时完全停靠在父窗体上,就像这样

最小化时可以从父窗体调出来
展开
 我来答
HAL9000PLUS
2013-09-27 · TA获得超过1279个赞
知道小有建树答主
回答量:663
采纳率:0%
帮助的人:718万
展开全部

把父窗口设为MDI容器就可以了。方法是把form的IsMdiContainer设为真。

子窗口需要在显示之前设置MdiParent 为主窗口,然后show.

public partial class Form1 : Form // 这个窗体的IsMdiContainer已经被设为true了。
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            Form2 f2 = new Form2(); // 开一个子窗口
            f2.MdiParent = this; // 设置父窗口为这个窗口。
            f2.Show(); // 用show可以显示无模式窗口。
        }
    }
更多追问追答
追问
我用的是VB语言,不是C#,现在已经解决了
把父窗体的ISMDICONTAINER设为真
dim form as nwe form1 'form为定义名称,form1为子窗体
form.mdiparent=me
form.show()

这样就可以了
但现在遇到一个问题就是怎么让菜单窗体或是说整个程序的主界面在MDI容器中不能最大化和最小化。并要充满整个MDI容器
追答

看你的代码应该是VB.net,和C#是一样的,语法区别而已。


你追问的问题,可以把子窗口的windowstate属性设为Maximized, 然后把MaxmizeBox和MinimizeBox都设为False, 这样就没有放大小缩小按钮了。


还有,可以重写子窗口的Form2_Resize事件,强制把变小的变回最大。

        private void Form2_Resize(object sender, EventArgs e)
        {
            this.WindowState = FormWindowState.Maximized;
        }

这样就谁也动不了。vb的原理也一样。

城含佛03
2013-09-17
知道答主
回答量:5
采纳率:0%
帮助的人:3.2万
展开全部
我只知道在WinForm中有 MDI技术 可以实现你说的功能
追问

我要的是方法,或是说,要怎么做才能实现这样的功能,在VS里面没找到设置的地方,也就是说必须要用代码来实现,那代码又该怎么写?在什么事件里写?又怎么让他最大化时完全停靠在父窗体上,就像这样

最小化时可以从父窗体调出来

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式