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



窗体重绘


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


窗体重绘
发表于:2007-04-26 12:22:25 楼主
窗体改变大小时,如何保证各控件按比例重绘啊   ?
发表于:2007-04-26 12:28:471楼 得分:0
控件的大小要自己控制的
发表于:2007-04-26 14:12:272楼 得分:0
设置dock
发表于:2007-04-30 12:29:003楼 得分:0
改变窗口大小时
怎么让窗口中的控件按比例变化
发表于:2007-04-30 12:30:284楼 得分:0
你可以使用tablelayout控件.
发表于:2007-04-30 12:53:045楼 得分:0
.net2005下使用。

                ///   <summary>
                ///   控件随窗体自动缩放
                ///   </summary>
                ///   <param   name= "frm "> </param>
                public   static   void   autoscale(form   frm)
                {
                        frm.tag   =   frm.width.tostring()   +   ", "   +   frm.height.tostring();
                        frm.sizechanged   +=   new   eventhandler(frm_sizechanged);
                }

                static   void   frm_sizechanged(object   sender,   eventargs   e)
                {
                        string[]   tmp   =   ((form)sender).tag.tostring().split( ', ');
                        float   width   =   (float)((form)sender).width   /   (float)convert.toint16(tmp[0]);
                        float   heigth   =   (float)((form)sender).height   /   (float)convert.toint16(tmp[1]);

                        ((form)sender).tag   =   ((form)sender).width.tostring()   +   ", "   +   ((form)sender).height;
                       
                        foreach   (control   control   in   ((form)sender).controls)
                        {
                                control.scale(new   sizef(width,   heigth));

                        }
                }
转:alldj(灵山妖姬)
发表于:2007-04-30 13:12:496楼 得分:0
补充:public   static   void   autoscale(form   frm)
                {
                        frm.tag   =   frm.width.tostring()   +   ", "   +   frm.height.tostring();
                        frm.sizechanged   +=   new   eventhandler(frm_sizechanged);
                }
可以不用,直接把frm.sizechanged   +=   new   eventhandler(frm_sizechanged);
放到窗体的构造函数中。写为this.tag   =   this.width.tostring()   +   ", "   +   this.height.tostring();
然后在窗体的sizechanged事件中选上   sizechanged(另外sizechanged()把static去掉)
发表于:2007-04-30 13:26:527楼 得分:0
呵呵     不好意思     再补充下
可以不用,直接把frm.sizechanged   +=   new   eventhandler(frm_sizechanged);//它就不用往构造函数里加了


快速检索

最新资讯
热门点击