分辨率类[置顶] c# winform窗口自适应各种分辨率类

文章结束给大家来个程序员笑话:[M]

    近期做项目时,遇到开辟的winform在自己电脑上可以畸形表现,共享到其他电脑就事儿不能表现了:

    1.当两个电脑分辨率相同时,无法表现完全,请检查form的autoscalemode属性是不是为none,并设为none

    2.分辨率不同时,可直接在form的构造函数中调用初始化函数之后, 加上一句AutoReSizeForm. SetFormSize(this);(对于自定义控件usercontrol也实用)

    public class AutoReSizeForm

    {

        static float SH

        {

            get

            {

                return (float)Screen.PrimaryScreen.Bounds.Height / Properties.Settings.Default.Y;

            }

        }

        static float SW

        {

            get

            {

                return (float)Screen.PrimaryScreen.Bounds.Width / Properties.Settings.Default.X;

            }

        }

        public static void SetFormSize(Control fm)

        {

            fm.Location = new Point((int)(fm.Location.X * SW), (int)(fm.Location.Y * SH));

            fm.Size = new Size((int)(fm.Size.Width * SW), (int)(fm.Size.Height * SH));

    每日一道理
喜欢海,不管湛蓝或是光灿,不管平静或是波涛汹涌,那起伏荡漾的,那丝丝的波动;喜欢听海的声音,不管是浪击礁石,或是浪涛翻滚,那轻柔的,那澎湃的;喜欢看海,不管心情是舒畅的或是沉闷的,不管天气是晴朗的或是阴沉的,那舒心的,那松弛的……

            fm.Font = new Font(fm.Font.Name, fm.Font.Size * SH,fm.Font.Style,fm.Font.Unit,fm.Font.GdiCharSet,fm.Font.GdiVerticalFont);

            if (fm.Controls.Count!=0)

            {

                SetControlSize(fm);

            }

        }

        private static void SetControlSize(Control InitC)

        {

            foreach (Control c in InitC.Controls)

            {

                c.Location = new Point((int)(c.Location.X * SW), (int)(c.Location.Y * SH));

                c.Size = new Size((int)(c.Size.Width * SW), (int)(c.Size.Height * SH));

                c.Font = new Font(c.Font.Name, c.Font.Size * SH, c.Font.Style, c.Font.Unit, c.Font.GdiCharSet, c.Font.GdiVerticalFont);

                if (c.Controls.Count != 0)

                {

                    SetControlSize(c);

                }

            }

        }

    }

文章结束给大家分享下程序员的一些笑话语录: 据说有一位软件工程师,一位硬件工程师和一位项目经理同坐车参加研讨会。不幸在从盘山公路下山时坏在半路上了。于是两位工程师和一位经理就如何修车的问题展开了讨论。
硬件工程师说:“我可以用随身携带的瑞士军刀把车坏的部分拆下来,找出原因,排除故障。”
项目经理说:“根据经营管理学,应该召开会议,根据问题现状写出需求报告,制订计划,编写日程安排,逐步逼近,alpha测试,beta1测试和beta2测试解决问题。”
软件工程说:“咱们还是应该把车推回山顶再开下来,看看问题是否重复发生。”

--------------------------------- 原创文章 By
分辨率和类
---------------------------------

posted @ 2013-05-29 20:02  xinyuyuanm  阅读(1476)  评论(1编辑  收藏  举报