您的位置:程序门 -> .net技术 -> c#



mdi子窗体上最大化最小化关闭按纽取消的问题?(vs2003)


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


mdi子窗体上最大化最小化关闭按纽取消的问题?(vs2003)[已结贴,结贴人:junsheng]
发表于:2007-02-01 12:54:30 楼主
form2   newmdichild   =   new   form2();
newmdichild.mdiparent   =   this;
newmdichild.show();
子窗体设置如下:
formborderstyle   属性设为   none
maximizebox   属性设为   false
minizebox   属性设为   false
windowsstate设为maximized
也就是想让它在父窗体中只能是最大化,不出显最大化,最小化,关闭按纽。可这样设置后还是显示这些按纽,而且还可还原,还原后还可出现滚动条。
如何能将这些都去除?
发表于:2007-02-01 13:21:561楼 得分:0
帮lz顶
发表于:2007-02-01 13:22:242楼 得分:50
windowsstate设为maximized
改為
normal就可以了,想要最大化就自己把form的size設成最大值就行了。
发表于:2007-02-01 13:24:073楼 得分:5
好像有controlbutton?controlicon??
发表于:2007-02-01 13:40:554楼 得分:5
把那个不要显示最大最小化按纽的窗体的   frombordstyle   属性设置为none就行了
如果要个别设置最大话不显示或者最小化不显示,好象有其他的属性,不太记得了
自己看看form的属性吧
发表于:2007-02-01 14:08:405楼 得分:30
加上一行代码:
newmdichild.dock   =   dockstyle.fill;

附带我以前的多文档界面,跟你的属性设置一样:
formborderstyle   属性设为   none
maximizebox   属性设为   false
minizebox   属性设为   false
windowsstate设为maximized

代码如下:
                private   void   treeview1_afterselect(object   sender,   treevieweventargs   e)
                {
                        form   frm   =   null;

                       
                        try
                        {
                                treenode   selnode   =   treeview1.selectednode;

                                string   strsub=selnode.text.substring(0,2);
                                if   (strsub.compareto( "设备 ")   ==   0&&selnode.level==2)
                                {
                                        string   strroot   =   selnode.parent.parent.text;
                                        switch   (strroot)
                                        {
                                                case   "实时监控 ":
                                                        frm   =   new   monitor();
                                                        ((monitor)frm).devid   =   convert.toint32(selnode.tag);
                                                        ((monitor)frm).btype   =   btype;                       //将通讯方式的值传递给监控界面
                                                        break;
                                                case   "历史查询 ":
                                                        frm   =   new   query();
                                                        ((query)frm).devid   =   convert.toint32(selnode.tag);
                                                        break;
                                                default:
                                                        break;

                                        }
                                }
                                else
                                {
                                        switch   (selnode.text)
                                        {
                                                case   "系统介绍 ":
                                                        foreach   (form   child   in   this.mdichildren)
                                                        {
                                                                child.close();
                                                        }
                                                        break;
                                                case   "用户管理 ":
                                                        frm   =   new   userform();
                                                        ((userform)frm).stroperator   =   stroperator;
                                                        break;
                                                case   "线路设置 ":
                                                        frm   =   new   line();
                                                        break;
                                                case   "设备设置 ":
                                                        frm   =   new   device();
                                                        break;
                                                case   "标准设置 ":
                                                        frm   =   new   standard();
                                                        break;
                                                case   "谐波标准设置 ":
                                                        frm   =   new   harmstand();
                                                        break;
                                                case   "数据范围设置 ":
                                                        frm   =   new   range();
                                                        break;
                                                case   "通讯设置 ":
                                                        frm   =   new   gatherparam();
                                                        ((gatherparam)frm).bmain   =   true;
                                                        break;
                                                case   "事件管理 ":
                                                        frm   =   new   eventmanager();
                                                        break;              
                                                case   "谐波电压统计 ":
                                                        fliterfrm   newfrm   =   new   fliterfrm();
                                                        newfrm.strtable   =   "谐波电压统计 ";
                                                        newfrm.text= "谐波电压统计 ";
                                                        newfrm.tag   =   "u ";
                                                        newfrm.showdialog();
                                                       
                                                        break;
                                                case   "谐波电流统计 ":
                                                        newfrm   =   new   fliterfrm();
                                                        newfrm.strtable   =   "谐波电流统计 ";
                                                        newfrm.text   = "谐波电流统计 ";
                                                        newfrm.tag   =   "i ";
                                                        newfrm.showdialog();
                                                       
                                                        break;
                                                default:
                                                        break;
                                        }  
                                }

                                if   (selnode.text   ==   "谐波电压统计 "   ¦ ¦   selnode.text   ==   "谐波电流统计 ")
                                        return;

                                if   (frm   !=   null)
                                {

                                        foreach   (form   child   in   this.mdichildren)
                                        {
                                                child.close();
                                        }  
                                       
                                        frm.mdiparent   =   this;
                                        frm.dock   =   dockstyle.fill;
                                        frm.windowstate   =   formwindowstate.maximized;
                                        frm.show();  
                                }

                        }
                        catch   (exception   ex)
                        {
                                messagebox.show(ex.message);
                        }

                }
发表于:2007-02-01 16:23:076楼 得分:0
windowsstate设为normal就可以了,
但加上newmdichild.dock   =   dockstyle.fill;后第一个窗口有水平和垂直滚动条,一点就消失了,之后生成的窗口没有滚动条。这是为什么?
发表于:2007-02-02 09:33:387楼 得分:0
自己顶
发表于:2007-02-02 09:39:128楼 得分:0
:)
发表于:2007-02-02 11:13:089楼 得分:0
发表于:2007-03-19 16:39:1010楼 得分:10

windowsstate设为maximized
改為
normal就可以了,想要最大化就自己把form的size設成最大值就行了。

这个方法非常好,问题解决了:)
谢谢
tjvictor(下一站----星星)
发表于:2007-05-18 18:31:5511楼 得分:0
我怎么觉得问题还是没有彻底解决啊!搂住我遇到类似的问题!,希望得到你的帮助,谢谢!联系   qq   290186954
发表于:2007-05-18 18:32:3012楼 得分:0
不同的是,我希望保存关闭按钮!


快速检索

最新资讯
热门点击