网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

Winform最大化缩放、不可移动

  1. 最大化缩放

    创新互联服务项目包括尖山网站建设、尖山网站制作、尖山网页制作以及尖山网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,尖山网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到尖山省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

//界面初始化

private void frmTemp_Load(object sender, EventArgs e)

        {

            //全屏显示

            Rectangle ScreenArea = System.Windows.Forms.Screen.GetWorkingArea(this);

            //设置水平伸缩比例

            dbScaleX = ScreenArea.Width /Convert.ToDouble(this.Width);

            //设置垂直伸缩比例

            dbScaleY = ScreenArea.Height /Convert.ToDouble(this.Height);

            this.Width = ScreenArea.Width;

            this.Height = ScreenArea.Height;

            //窗体的位置由   Location   属性确定。

            this.StartPosition = FormStartPosition.Manual;

            this.Location = new Point(0, 0);

            this.MaximizeBox = false;

            this.MinimizeBox = false;

            controlsDfsToResize(frmMain.Instance.Controls,dbScaleX,dbScaleY);

}

        ///

        /// 对form中的控件进行深度优先遍历,

        /// 随着Form的大小调整子控件的大小及位置

        ///

        ///

        private static void controlsDfsToResize(Control.ControlCollection controls, double dbScaleX,double dbScaleY)

        {

            foreach (Control ctrl in controls)

            {

                ctrl.Left = (int)(Convert.ToDouble(ctrl.Left) * dbScaleX);

                ctrl.Top = (int)(Convert.ToDouble(ctrl.Top) * dbScaleY);

                ctrl.Width = (int)(Convert.ToDouble(ctrl.Width) * dbScaleX);

                ctrl.Height = (int)(Convert.ToDouble(ctrl.Height) * dbScaleY);

                //如果控件是Datagridview,则缩放列的行宽

                if (ctrl.GetType().Equals(typeof(DataGridView)))

                {

                    DataGridView dgv = (DataGridView)ctrl;

                    foreach (DataGridViewColumn col in dgv.Columns)

                    {

                        col.Width = Convert.ToInt32(col.Width * dbScaleX);

                    }

                }

                if (ctrl.Controls.Count > 0)

                {

                    controlsDfsToResize(ctrl.Controls, dbScaleX, dbScaleY);

                }

            }

        }

2.不可移动

        ///

        /// 欺骗窗体,让窗体认为点击的为非窗体区域,从而实现不可移动(有BUG,所以需要下面的函数)

        ///

        ///

        protected override void WndProc(ref Message m)

        {

            if(m.Msg == 0x00A1 && m.WParam.ToInt32() == 2)

            {

                m.Msg = 0x0201;

                m.LParam = IntPtr.Zero;

            }

            base.WndProc(ref m);

        }

        ///

        /// 不让窗体移动

        ///

        ///

        ///

        private void frmMain_Move(object sender, EventArgs e)

        {

            this.Location = new Point(0,0);

        }


分享文章:Winform最大化缩放、不可移动
本文链接:http://bjjierui.cn/article/piejoi.html

其他资讯