精华内容
下载资源
问答
  • winform分辨率自适应
    2021-01-17 16:07:47

    48304ba5e6f9fe08f3fa1abda7d326ab.png

    using System;

    using System.Collections.Generic;

    using System.Linq;

    using System.Text;

    using System.Windows.Forms;

    using System.Drawing;

    namespace AutoSizeFormClass

    {

    public class AutoSizeFormClass

    {

    ///

    /// 声明一个结构,用于保存控件位置的基本属性。

    ///

    public struct controlRect

    {

    ///

    /// 控件的left属性

    ///

    public int Left;

    ///

    /// 控件的Right属性

    ///

    public int Top;

    ///

    /// 控件的Weight属性

    ///

    public int Width;

    ///

    /// 控件的High属性

    ///

    public int Height;

    ///

    /// 控件的Fontsize属性

    ///

    public float FontSize;

    }

    ///

    /// 声明一个泛型,类型为什么的保存控件属性的结构类,

    ///

    public List oldCtrl = new List();

    int ctrlNo = 0;//初始化标识控件的变量为0,表示窗体本身。

    ///

    /// 保存控件的位置和大小信息

    ///

    /// 需要被保存的控件

    private void AddControl(Control ctl)

    {

    foreach (Control c in ctl.Controls)

    {

    controlRect objCtrl;

    objCtrl.Left = c.Left;

    objCtrl.Top = c.Top;

    objCtrl.Width = c.Width;

    objCtrl.Height = c.Height;

    objCtrl.FontSize = c.Font.Size;

    oldCtrl.Add(objCtrl);

    //**放在这里,是先记录控件本身,后记录控件的子控件,重点是前后要一致

    if (c.Controls.Count > 0)

    AddControl(c);//窗体内其余控件还可能嵌套控件(比如panel),要单独抽出,因为要递归调用

    }

    }

    ///

    /// 窗体自适应分辨率类

    ///

    /// 需要进行设置的窗体

    public void controlAutoSize(Control mForm)

    {

    if (ctrlNo == 0)

    { //*如果在窗体的Form1_Load中,记录控件原始的大小和位置,正常没有问题,但要加入皮肤就会出现问题,因为有些控件如dataGridView的的子控件还没有完成,个数少

    //*要在窗体的Form1_SizeChanged中,第一次改变大小时,记录控件原始的大小和位置,这里所有控件的子控件都已经形成

    controlRect cR;

    cR.Left = mForm.Left;

    cR.Top = mForm.Top;

    cR.Width = mForm.Width;

    cR.Height = mForm.Height;

    cR.Width = int.Parse(mForm.Tag.ToString().Split(',')[0]);

    cR.Height = int.Parse(mForm.Tag.ToString().Split(',')[1]);

    cR.FontSize = mForm.Font.Size;

    oldCtrl.Add(cR);//第一个为"窗体本身",只加入一次即可

    AddControl(mForm);//窗体内其余控件可能嵌套其它控件(比如panel),故单独抽出以便递归调用

    }

    float wScale = (float)mForm.Width / (float)oldCtrl[0].Width;//新旧窗体之间的比例,与最早的旧窗体比较

    float hScale = (float)mForm.Height / (float)oldCtrl[0].Height;//.Height;

    ctrlNo = 1;//进入=1,第0个为窗体本身,窗体内的控件,从序号1开始

    AutoScaleControl(mForm, wScale, hScale);//窗体内其余控件还可能嵌套控件(比如panel),要单独抽出,因为要递归调用

    }

    /// 设置控件的属性

    ///

    /// 需要设置的控件

    /// 调整的高度比例

    /// 调整的宽度比例

    private void AutoScaleControl(Control ctl, float wScale, float hScale)

    {

    int ctrLeft0, ctrTop0, ctrWidth0, ctrHeight0;

    float ctrFontSize0;

    //第1个是窗体自身的 Left,Top,Width,Height,所以窗体控件从ctrlNo=1开始

    foreach (Control c in ctl.Controls)

    {

    //获得控件原有的位置和大小信息

    ctrLeft0 = oldCtrl[ctrlNo].Left;

    ctrTop0 = oldCtrl[ctrlNo].Top;

    ctrWidth0 = oldCtrl[ctrlNo].Width;

    ctrHeight0 = oldCtrl[ctrlNo].Height;

    ctrFontSize0 = oldCtrl[ctrlNo].FontSize;

    //设置控件新的位置和大小信息。

    c.Left = (int)((ctrLeft0) * wScale);//新旧控件之间的线性比例。控件位置只相对于窗体

    c.Top = (int)((ctrTop0) * hScale);//

    c.Width = (int)(ctrWidth0 * wScale);//只与最初的大小相关,所以不能与现在的宽度相乘

    c.Height = (int)(ctrHeight0 * hScale);//

    c.Font = new Font(c.Font.Name, (float)(ctrFontSize0 * wScale));//设置控件中字体的大小以适应控件的大小

    ctrlNo++;//累加序号

    //**放在这里,是先缩放控件本身,后缩放控件的子控件,重点是前后要一致(与保存时)

    if (c.Controls.Count > 0)

    AutoScaleControl(c, wScale, hScale);//窗体内其余控件还可能嵌套控件(比如panel),要单独抽出,因为要递归调用

    }

    }

    }

    }

    代码中的注释比较详细了,如果你想实现窗体的自适应分辨率,你只需要在窗体的Layout事件中添加如下代码:

    ///

    /// 声明一个窗体自适应分辨率类

    ///

    public AutoSizeFormClass As = new AutoSizeFormClass();

    ///

    /// 在窗体的layout事件中调用

    ///

    ///

    ///

    private void Form1_Layout(object sender, LayoutEventArgs e)

    {

    As.controlAutoSize(this);

    }

    48304ba5e6f9fe08f3fa1abda7d326ab.png

    更多相关内容
  • C# Winform自适应分辨率的类

    热门讨论 2013-05-24 18:08:24
    C# Winform自适应分辨率的类自适应分辨率的类
  • winform窗口自适应

    2018-10-17 13:04:16
    winform窗口自适应代码,c#winform资源,解压即可使用
  • c# winform 窗体基于分辨率自适应处理

    千次阅读 2020-06-19 17:24:42
    代码参考资料:https://download.csdn.net/download/nbspzs/12535885 普通的winform属性需要设置一下: 如果winform中嵌入 usercontrol用户控件,那这个窗体需要设置:

    代码参考资料:WindowsFormsApplication1.zip-C#文档类资源-CSDN下载

    普通的winform属性需要设置一下,尽量不要继承Cskin第三方用的话设置【this.CanResize = true】:

    绝大部分优先使用dpi好使,原始 有些font好使

    label、button这些控件 autosize=true

    如果winform中嵌入 usercontrol用户控件,那这个窗体需要设置:

    load事件加载复制            
    #region 计算dpi值
                float dpiX;
                Graphics graphics = this.CreateGraphics();
                dpiX = graphics.DpiX;
    
                switch (dpiX)
                {
                    case 96f:
                        dpiValue = 1.0f;
                        break;
                    case 120f:
                        dpiValue = 1.25f;
                        break;
                    case 144f:
                        dpiValue = 1.5f;
                        break;
                    case 168f:
                        dpiValue = 1.75f;
                        break;
                    case 192f:
                        dpiValue = 2.0f;
                        break;
                }
                #endregion
    
    针对有些长宽、坐标调整的 值*dpiValue

    /// <summary>
            /// 获取windows缩放比
            /// </summary>
            /// <returns></returns>
            public static float GetWindowsZoomRatio(Graphics graphics)
            {
                float dpiX = graphics.DpiX;
    
                float zoomRatio = 1.0f;
    
                switch (dpiX)
                {
                    case 96f:
                        zoomRatio = 1.0f;
                        break;
                    case 120f:
                        zoomRatio = 1.25f;
                        break;
                    case 144f:
                        zoomRatio = 1.5f;
                        break;
                    case 168f:
                        zoomRatio = 1.75f;
                        break;
                    case 192f:
                        zoomRatio = 2.0f;
                        break;
                    case 216f:
                        zoomRatio = 2.25f;
                        break;
                    case 240f:
                        zoomRatio = 2.5f;
                        break;
                    case 264f:
                        zoomRatio = 2.75f;
                        break;
                    case 288f:
                        zoomRatio = 3.0f;
                        break;
                    case 312f:
                        zoomRatio = 3.25f;
                        break;
                    case 336f:
                        zoomRatio = 3.5f;
                        break;
                    case 360f:
                        zoomRatio = 3.75f;
                        break;
                    case 384f:
                        zoomRatio = 4.0f;
                        break;
                    case 408f:
                        zoomRatio = 4.25f;
                        break;
                    case 432f:
                        zoomRatio = 4.5f;
                        break;
                    case 456f:
                        zoomRatio = 4.75f;
                        break;
                    case 480f:
                        zoomRatio = 5.0f;
                        break;
                }
    
                return zoomRatio;
            }

    展开全文
  • (窗口在LOAD的时候记录每个控件的坐标,每次窗口重绘的时候引时SizeChange事件,根据比率重新设置坐标) 以下是代码 AutoSizeFormClass类 using System;...using System.Collections.Generic;...

    (窗口在LOAD的时候记录每个控件的坐标,每次窗口重绘的时候引时SizeChange事件,根据比率重新设置坐标)

    以下是代码  AutoSizeFormClass类

     

    复制代码
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    
    namespace SalesClient.Sys
    {
       public class AutoSizeFormClass
        {
            public struct controlRect
            {
                public int Left;
                public int Top;
                public int Width;
                public int Height;
            }
    
            private bool _Flag;
            public bool Flag
            {
                get { return _Flag; }
                set { _Flag = value; }
            }
    
            private int _Number;
            public int Number
            {
                get { return _Number; }
                set { _Number = value; }
            }
    
            private List<controlRect> oldCtrl;
    
            public void Initialize(Form mForm)
            {
                oldCtrl = new List<controlRect>();
                controlRect cR;
    
                cR.Left = mForm.Left;
                cR.Top = mForm.Top;
                cR.Width = mForm.Width;
                cR.Height = mForm.Height;
    
                oldCtrl.Add(cR);
    
                foreach (Control c in mForm.Controls)
                {
                    controlRect objCtrl;
                    objCtrl.Left = c.Left;
                    objCtrl.Top = c.Top;
                    objCtrl.Width = c.Width;
                    objCtrl.Height = c.Height;
                    oldCtrl.Add(objCtrl);
                }
                Flag = true;
                Number = mForm.Controls.Count;
            }
    
            public void ReSize(Form mForm)
            {
                if (!Flag) return;
    
                float wScale = (float)mForm.Width / (float)oldCtrl[0].Width;
                float hScale = (float)mForm.Height / (float)oldCtrl[0].Height;
    
                int ctrLeft0, ctrTop0, ctrWidth0, ctrHeight0;
                int ctrlNo = 1;
    
                try
                {
                    if (mForm.Controls.Count != Number) return;
                    foreach (Control c in mForm.Controls)
                    {
                        ctrLeft0 = oldCtrl[ctrlNo].Left;
                        ctrTop0 = oldCtrl[ctrlNo].Top;
                        ctrWidth0 = oldCtrl[ctrlNo].Width;
                        ctrHeight0 = oldCtrl[ctrlNo].Height;
    
                        c.Left = (int)(ctrLeft0 * wScale);
                        c.Top = (int)(ctrTop0 * hScale);
                        c.Width = (int)(ctrWidth0 * wScale);
                        c.Height = (int)(ctrHeight0 * hScale);
                        ctrlNo += 1;
                    }
                }
                catch
                {
                    return;
                }
            }
        }
    }
    复制代码

     

    在要设置的窗体里

     

    复制代码

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;

    namespace SalesClient.HT
    {
        public partial class test : Form
        {
            public test()
            {
                InitializeComponent();
            }
            SalesClient.Sys.AutoSizeFormClass asc = new SalesClient.Sys.AutoSizeFormClass();

            private void test_Load(object sender, EventArgs e)
            {
                asc.Initialize(this);
            }

            private void test_SizeChanged(object sender, EventArgs e)
            {
                asc.ReSize(this);
            }
        }
    }

    复制代码

    转载于:https://www.cnblogs.com/ltfyea/p/3534239.html

    展开全文
  • C#——WinForm窗体自适应分辨率

    千次阅读 2019-12-03 11:07:17
    我们自己编写程序的界面,会遇到各种屏幕分辨率,只有自适应才能显的美观。实际上,做到这点也很简单,就是首先记录窗体和它上面控件的初始位置和大小,当窗体改变比例时,其控件的位置和大小也按此比例变化即可。...

    我们自己编写程序的界面,会遇到各种屏幕分辨率,只有自适应才能显的美观。实际上,做到这点也很简单,就是首先记录窗体和它上面控件的初始位置和大小,当窗体改变比例时,其控件的位置和大小也按此比例变化即可。因为窗体上控件的位置和大小是相对于自己所在的窗体的,也就是所谓的窗口坐标。  

      在这里我们只考虑相对于自己窗体的窗口坐标更简单,也就是成比例变化。为了多个窗体共用,我在这里创建一个类AutoSizeFormClass ,1.使用它去记录窗体和其控件的初始位置和大小,2.判断窗体中的控件是否为容器控件,如果是记录容器控件中的控件的初始位置和大小3.根据窗体变化了的大小,成比例地实现其控件的水平和垂直方向的变化,也就是自适应。
     
    二。使用方法
      使用方法很简单,
      1.把自适应的类整体复制到你的工程命名空间里,
         然后在需要自适应的窗体中做2步即可:
      2.声明自适应类实例。
      3.为窗体添加大小改变事件,并在其方法中,调用类的自适应方法,完成自适应

     

        通过上面的介绍我们会发现其中的几个实现难点:

        1.如何保存窗体的以及其中控件的位置以及大小等属性,当然我们最常用的方法就是自己定义一个实体,实体中包含我们需要保持的属性(主要包括left,top,width,height,以及fontsize属性)这个我提供的解决方案是定义一个数据结构。

        普及一下结构体的知识:结构体中包含其中要存储的数据,使用结构体的好处在于可以将不同类型的数据有序的组合在一起,结构造出一个新的数据类型,不占内存空间,只用定义结构体的变量时才开辟内存空间,结构体类型的变量在内存依照其成员顺序顺序排列,所占内存空间的大小是其全体成员所占空间的总和,结构体可以作为函数的参数,函数也可以返回结构体。

    看我们定义的结构体:

    /// <summary>
            /// 声明一个结构,用于保存控件位置的基本属性。
            /// </summary>
            public struct controlRect
            {
                /// <summary>
                /// 控件的left属性
                /// </summary>
                public int Left;
                /// <summary>
                /// 控件的Right属性
                /// </summary>
                public int Top;
                /// <summary>
                /// 控件的Weight属性
                /// </summary>
                public int Width;
                /// <summary>
                /// 控件的High属性
                /// </summary>
                public int Height;
                /// <summary>
                /// 控件的Fontsize属性
                /// </summary>
                public float FontSize;
            }

     然后声明一个泛型用来保存所有控件位置以及大小信息产生的结构体信息。

    //这里只是列出两个容器控件分别为panel控件和groupbox控件
                    if (c.GetType().ToString() == "System.Windows.Forms.Panel")
                    {
                        //要执行的代码
                    }
                    //如果是GroupBox控件
                    if (c.GetType().ToString() == "System.Windows.Forms.GroupBox")
                    {
                        //要执行的代码
                    }

     但我发现自己很难把所有的控件都想全了,即使是想全了也会重复太多的代码,最后采取了一个很有效的方法就是加上这个判断:

                if (c.Controls.Count > 0)

        一旦这个判断成立就说明这个控件就是一个容器控件了。

    问题3.递归调用保存控件信息类,实现所有控件(包括容器控件)的位置和大小信息的保存。

     

     

       问题4.如何保存画窗体时窗体的大小,听起来有些别嘴,其实也可以说是你想要窗体呈现的大小,这个大大家好像会有疑问但虽然说窗体是控件的一种,但是进过我的实现,当我们改变分辨率的同时,比如我们原来设置窗体每次打开时最大化显示,但是无论我们编写程序时设置的窗体的大小多大,我们运行起来时窗体都会占满整个屏幕,这也是出现由于分辨率改变,大窗体中部分控件无法显示完全的原因。比如我们的做的这个很大的登陆界面,看看效果:

            小分辨率下的情况:

           大分辨率下应该是这样:

     

            ​我们会发现窗体最大化了。但是窗体中的控件没有跟上。

            说了这么多我想大家都迫不及待的想看代码了:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Drawing;
    namespace AutoSizeFormClass
    {
        public class AutoSizeFormClass
        {
            /// <summary>
            /// 声明一个结构,用于保存控件位置的基本属性。
            /// </summary>
            public struct controlRect
            {
                /// <summary>
                /// 控件的left属性
                /// </summary>
                public int Left;
                /// <summary>
                /// 控件的Right属性
                /// </summary>
                public int Top;
                /// <summary>
                /// 控件的Weight属性
                /// </summary>
                public int Width;
                /// <summary>
                /// 控件的High属性
                /// </summary>
                public int Height;
                /// <summary>
                /// 控件的Fontsize属性
                /// </summary>
                public float FontSize;
            }
            /// <summary>
            /// 声明一个泛型,类型为什么的保存控件属性的结构类,
            /// </summary>
            public List<controlRect> oldCtrl = new List<controlRect>();
            int ctrlNo = 0;//初始化标识控件的变量为0,表示窗体本身。   
            /// <summary>
            /// 保存控件的位置和大小信息
            /// </summary>
            /// <param name="ctl">需要被保存的控件</param>
            private void AddControl(Control ctl)
            {
                foreach (Control c in ctl.Controls)
                {  
                    controlRect objCtrl;
                    objCtrl.Left = c.Left;
                    objCtrl.Top = c.Top;
                    objCtrl.Width = c.Width;
                    objCtrl.Height = c.Height;
                    objCtrl.FontSize = c.Font.Size;
                    oldCtrl.Add(objCtrl);
                    //**放在这里,是先记录控件本身,后记录控件的子控件,重点是前后要一致
                    if (c.Controls.Count > 0)
                        AddControl(c);//窗体内其余控件还可能嵌套控件(比如panel),要单独抽出,因为要递归调用
                }
            }
            /// <summary>
            /// 窗体自适应分辨率类
            /// </summary>
            /// <param name="mForm">需要进行设置的窗体</param>
            public void controlAutoSize(Control mForm)
            {
                if (ctrlNo == 0)
                { //*如果在窗体的Form1_Load中,记录控件原始的大小和位置,正常没有问题,但要加入皮肤就会出现问题,因为有些控件如dataGridView的的子控件还没有完成,个数少
                    //*要在窗体的Form1_SizeChanged中,第一次改变大小时,记录控件原始的大小和位置,这里所有控件的子控件都已经形成
                    controlRect cR;
                    cR.Left = mForm.Left;
                    cR.Top = mForm.Top;
                    cR.Width = mForm.Width;
                    cR.Height = mForm.Height;
                    cR.Width = int.Parse(mForm.Tag.ToString().Split(',')[0]);
                    cR.Height = int.Parse(mForm.Tag.ToString().Split(',')[1]);
                    cR.FontSize = mForm.Font.Size;
                    oldCtrl.Add(cR);//第一个为"窗体本身",只加入一次即可                
                    AddControl(mForm);//窗体内其余控件可能嵌套其它控件(比如panel),故单独抽出以便递归调用
                }
                float wScale = (float)mForm.Width / (float)oldCtrl[0].Width;//新旧窗体之间的比例,与最早的旧窗体比较
                float hScale = (float)mForm.Height / (float)oldCtrl[0].Height;//.Height;
                ctrlNo = 1;//进入=1,第0个为窗体本身,窗体内的控件,从序号1开始
                AutoScaleControl(mForm, wScale, hScale);//窗体内其余控件还可能嵌套控件(比如panel),要单独抽出,因为要递归调用
            }
            /// 设置控件的属性
            /// </summary>
            /// <param name="ctl">需要设置的控件</param>
            /// <param name="wScale">调整的高度比例</param>
            /// <param name="hScale">调整的宽度比例</param>
            private void AutoScaleControl(Control ctl, float wScale, float hScale)
            {
                int ctrLeft0, ctrTop0, ctrWidth0, ctrHeight0;
                float ctrFontSize0;
               //第1个是窗体自身的 Left,Top,Width,Height,所以窗体控件从ctrlNo=1开始
                foreach (Control c in ctl.Controls)
                { 
                    //获得控件原有的位置和大小信息
                    ctrLeft0 = oldCtrl[ctrlNo].Left;
                    ctrTop0 = oldCtrl[ctrlNo].Top;
                    ctrWidth0 = oldCtrl[ctrlNo].Width;
                    ctrHeight0 = oldCtrl[ctrlNo].Height;
                    ctrFontSize0 = oldCtrl[ctrlNo].FontSize;
                    //设置控件新的位置和大小信息。
                    c.Left = (int)((ctrLeft0) * wScale);//新旧控件之间的线性比例。控件位置只相对于窗体
                    c.Top = (int)((ctrTop0) * hScale);//
                    c.Width = (int)(ctrWidth0 * wScale);//只与最初的大小相关,所以不能与现在的宽度相乘 
                    c.Height = (int)(ctrHeight0 * hScale);//
                    c.Font = new Font(c.Font.Name, (float)(ctrFontSize0 * wScale));//设置控件中字体的大小以适应控件的大小
                    ctrlNo++;//累加序号
                    //**放在这里,是先缩放控件本身,后缩放控件的子控件,重点是前后要一致(与保存时)
                    if (c.Controls.Count > 0)
                        AutoScaleControl(c, wScale, hScale);//窗体内其余控件还可能嵌套控件(比如panel),要单独抽出,因为要递归调用
                }
            }
        }
    }
        代码中的注释比较详细了,如果你想实现窗体的自适应分辨率,你只需要在窗体的Layout事件中添加如下代码:
            /// <summary>
            /// 声明一个窗体自适应分辨率类
            /// </summary>
            public AutoSizeFormClass As = new AutoSizeFormClass();
            /// <summary>
            /// 在窗体的layout事件中调用
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void Form1_Layout(object sender, LayoutEventArgs e)
            {
                As.controlAutoSize(this);
            }

    最后想说的是为什么用layout事件,不用Resize或者是SizeChanged事件,这个我查了好长时间,也自己试了所有的方法,但还是没能明白只是发现这几个事件的触发顺序是不同的首先触发的是Resize→然后是SizeChanged→然后是layout→最后是Load事件,是不是把适应分辨率的代码写在那个事件下都可以呢,这个我也尝试了,当窗体中含有tabcontrol控件时只有layout事件触发时才能检测出窗体中包含控件,这几个事件的区别我实在不知道有声明区别。希望读者给出帮助。

    展开全文
  • 我们在开发winform时,在屏幕分辨率显示设置100%下开发系统界面,但是有的同学的分辨率缩放设置是125%甚至150%,这时候我们的系统界面默认就会错位,导致效果体验极差。按钮文字都被放大了,当我们的布局有尺寸局限...
  • 转载于 新浪博客,链接...原文如下:改进C# WinForm窗体及其控件自适应各种屏幕分辨率一 、说明 2012-11-30 曾经写过 《C# WinForm窗体及其控件自适应各种屏幕分辨率》 ,其中也讲解了控件自适应的原理。近期有网友说,
  • WinForm碰到不同分辨率的时候,如何设计才能自适应?包括DevExpress控件2分你看看photoshop遇到不同分辨率的显示,如何布局,就知道了。5分你的自适应指的什么,如果是为了不错位,遮挡等,就设置dock或anchors自动...
  • 本来不爱鸡汤,今天说两句:winform开发有一个缺陷就是不能实现界面的自适应,切换不同的分辨率,或者窗体大小改变就会出现窗体显示不全的问题。这就需要自己写一个方法来实现不同情况下的自适应,WPF比Winform的一...
  • 1.项目情况:项目使用winform搭建,禁用用户放大缩小,一直全屏展示 2.问题: a.用tableLayoutPanel加panel能不能做到自适应布局呢?(保证布局不跑偏) b.如果a成立那么里面的控件如何做到按照屏幕分辨率等比缩放呢,...
  • c# winform窗口自适应各种分辨率

    千次阅读 2013-05-29 14:45:37
    近期做项目时,遇到开发的winform在自己电脑上可以正常显示,共享到其他电脑就事儿不能显示了: 1.当两个电脑分辨率相同时,无法显示完全,请检查form的autoscalemode属性是否为none,并设为none 2.分辨率不同时,...
  • 在做YH的时候,为了扩展界面的功能区域...改回去太麻烦了,只好写了一个自适应分辨率的类,来解决这一问题。多的不说了,直接上代码吧。using System;using System.Collections.Generic;using System.Drawing;using...
  • winform窗体自适应大小,运行环境:Visual Studio 2017,.Net Framework 4.8; 用法简单,调用AutoSize 即可。 private static AutoSize autoSize; public Form1() { InitializeComponent(); autoSize = new ...
  • 主要介绍了WinForm中实现picturebox自适应图片大小的方法,涉及pictureBox控件相关属性设置技巧,需要的朋友可以参考下
  • 我们自己编写程序的界面,会遇到各种屏幕分辨率,只有自适应才能显的美观。实际上,做到这点也很简单,就是首先记录窗体和它上面控件的初始位置和大小,当窗体改变比例时,其控件的位置和大小也按此比例变化即可。...
  • C# WinForm窗体及其控件自适应各种屏幕分辨率一。说明  我们自己编写程序的界面,会遇到各种屏幕分辨率,只有自适应才能显的美观。实际上,做到这点也很简单,就是首先记录窗体和它上面控件的初始位置和大小,当...
  • } } 经过上述几个步骤,即可实现窗体的自由缩放,它的基本思想是:通过对控件的尺寸进行重置来实现窗体的自适应。即,先将原窗体的初始值进行存储,然后通过SizeChange事件响应窗体改变,实现重绘。 需要注意的是:...
  • https://www.cnblogs.com/Fpack/p/15055871.html
  • winform 自适应屏幕分辨率

    千次阅读 2014-04-09 15:11:27
    这样可以适应任何分辨率的显示问题 //窗体 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; ...
  • 1.把自适应的类整体复制到你的工程命名空间里,这样做,每个窗体均可使用。 2.声明自适应类实例。 3.为窗体添加SizeChanged事件,并在其方法Form1_SizeChanged中,首次记录窗体和其控件初始位置和大小,之后调用类的...
  • 图像超分辨率一直是计算机视觉领域一个热门的研究主题,也是 Adobe 等公司开拓新型图像处理技术的重要方向。近日,Adobe 研究院与田纳西大学的研究者提出了一种借助神经纹理迁移实现的图像超分辨技术,还构建了一个...
  • 求大佬帮助,想要一个winform自适应大小的方案,或者代码,或者只给个思路也行,但是别要那个什么AutoSizeForm那个东西了,坑实在是太多了!!!∑(゚Д゚ノ)ノ
  • winform实现自适应

    2020-06-15 17:32:46
    private void ScaleWindow() ...//你当前的分辨率宽 float h = 1080;//你当前的分辨率高 Rectangle rect = Screen.PrimaryScreen.Bounds; float ww = rect.Width / w; float wh = rect.Height / h; ...
  • WinForm窗体控件自适应大小

    千次阅读 2020-10-26 13:53:02
    //递归函数调用,防止遗漏嵌套的控件(如:Group、Panel等) } } } // 窗体自适应分辨率 public void ControlAutoSize(Control MainForm) { if (CtrNo == 0) { ControlProperty Ctp = new ControlProperty();...

空空如也

空空如也

1 2 3 4 5 ... 12
收藏数 225
精华内容 90
关键字:

winform分辨率自适应