zoukankan      html  css  js  c++  java
  • WinForm中控件位置不随窗体大小的变化而改变

    • 背景:在窗体开发中使控件的位置不随窗体的大小改变而变化的问题?这是一个同事在开发时遇到的问题,在思考试错之后,写出如下代码。
    • 声明成员:
            Point m_InitLocation;
            Size m_InitFormSize;
            double scale = 1;
            Size m_CurrentFormSize;
            Point m_CurrentTBLocation;        
    • 主要代码:
    private void XtraForm1_SizeChanged(object sender, EventArgs e)
            {
                m_CurrentFormSize = this.Size;
    
                scale = (double)((double)m_CurrentFormSize.Height / (double)m_InitFormSize.Height);
                m_CurrentTBLocation.Y = (int)(m_InitLocation.Y * scale);
    
                scale = (double)((double)m_CurrentFormSize.Width / (double)m_InitFormSize.Width);
                m_CurrentTBLocation.X = (int)(m_InitLocation.X * scale);
    
                textEdit1.Location = m_CurrentTBLocation;
               
            }

    这样textEdit1控件就不会随窗体大小的变化而改变位置。

    • 使用扩张方法:
    public static class textExtension
        {
            public static Point NewSize(this DevExpress.XtraEditors.TextEdit textedit, Size oldSize, Size newSize, Point oldtextPoint)
            {
                double scale = 0;
                Point location = new Point();
                scale = (double)((double)newSize.Height / (double)oldSize.Height);
                location.Y = (int)(oldtextPoint.Y * scale);
    
                scale = (double)((double)newSize.Width / (double)oldSize.Width);
                location.X = (int)(oldtextPoint.X * scale);
                 
                return location;
    
            }
        }

    此时XtraForm1_SizeChanged函数中只需加入一行代码即可:

        this.textEdit1.Location =    textEdit1.NewSize(m_InitFormSize, this.Size, m_InitLocation);
    • 总结:使用扩张方法,在控件多的时候非常方便,没加入一个控件XtraForm1_SizeChanged函数中就只用加入一行代码。清晰简洁易于修改扩张。
  • 相关阅读:
    .Net内存回收
    select rank() over
    Android中如何区分界面组件创建和销毁的类型
    Thread和Runnable的区别
    Intent对象若干数据项的含义总结
    libcurl用法
    Hadoop 使用Combiner提高Map/Reduce程序效率
    Struts2中的get、set方法作用:
    struts2 使用jsonplugin
    struts.custom.i18n.resources国际化详解(一)
  • 原文地址:https://www.cnblogs.com/zhangyuanbo12358/p/5212784.html
Copyright © 2011-2022 走看看