我觉得会在窗体的Resize事件中写,但是不知道如何改变里面控件(包括自定义控件)的大小……
而且也不知道如何固定每个控件之间的相对位置关系……
这个程序是一个全屏程序,全屏的属性我在属性列表中将FormBorderStyle设为None,将WindowState设为Maximized。
目前所有的控件都在程序(屏幕)的左上角整齐地排列,现在不知道如何改变这些Label(几乎都是Label,还有一个自定义控件)的位置、大小、里面文字的大小……

解决方案 »

  1.   

    1. 设置Dock属性
    2. 在OnResize函数里面重新计算位置,设置Localsize和Size属性
      

  2.   

    你可以设置控件DOCK属性值,来自适应大小
      

  3.   

    DOCK属性值怎么设啊……是一个布局按钮……没用过……
      

  4.   

    选中你那个 label,F4调出属性窗口,找到 Dock,然后一个个试------
      

  5.   

    我的窗口是一个FormBorderStyle设为None、要全屏在宽为Width、高为Height的屏幕上的程序……
      

  6.   

    大小设置控件(窗口)Width和Height
    位置设置Location属性
      

  7.   

    Location默认是相对于父容器控件左上角的位置,如果超过左上边界将为负数
      

  8.   

    DOCK属性是靠在一个边上或fill在整个窗体里……我的窗体是30个Label像表格一样整齐地排列……估计用DOCK属性不合适……
      

  9.   

    跟你一样的问题,见:
    http://topic.csdn.net/u/20111017/16/ec9ceb3a-3edb-4590-90ea-4f72c29b79b1.html
      

  10.   

    Softgroup NetResize就可以帮你搞定了,唯一不爽的我用了devexpress控件,放大后界面有些惨不忍睹
      

  11.   

    “不要跟我说什么Anchor属性 Dock属性设置,不是那类问题!~ 网上已经看过多方资料,未看到实用的办法!”很多人的心声……
      

  12.   

    Softgroup NetResize是什么啊……没听说过……能说具体点么?
      

  13.   

    在窗体的SizeChanged事件中进行计算,设置控件的Location和Size就可以了。
      

  14.   


            private void frmStatistics_SizeChanged(object sender, EventArgs e)
            {
                this.lblSpecialText.Width = 821 + move_l;
                this.Refresh();
            }没反应……
      

  15.   


            private void frmStatistics_SizeChanged(object sender, EventArgs e)
            {
                this.lblSpecialText.Size = new Point(821 + move_l,this.lblSpecialText.Height);
            }看看这个
      

  16.   


    错误 2 无法将类型“System.Drawing.Point”隐式转换为“System.Drawing.Size”。存在一个显式转换(是否缺少强制转换?) E:\三点照合\2011-7-new\Source\CS_Source\显示屏程序\FS0501\FS0501\frmStatistics.cs 123 40 FS0501怎么办?
      

  17.   

    改成了这样            Point PlblSpecialText = new Point(821 + move_w + 228 + move_h);
                this.lblSpecialText.Size = new Size(PlblSpecialText);就没有语法错误了……
    不过还是没有作用,label依然没变化。我把FormBorderStyle改成Sizable,动了窗体的大小,倒是大小变了,只是变不回去了……不过这个可以不用考虑。
    但我这个是FormBorderStyle为None的全屏程序……要在不同分辨率下的屏幕中全屏显示,并自动调整label的Size与Location……        static int move_w;
            static int move_h;是针对当前屏幕分辨率的宽和高的两个偏移量……倒是找到了,不知道如何利用这两个偏移量修改Size与Location……
      

  18.   

    我写错了,Location属性才是使用Point,Size属性使用的是Size,我是直接写的,没有环境,所以没法调试,你应该会写了吧
      

  19.   

    你是一开始就是使用的全屏吗?
    要不你在窗体的Load事件中加入那段代码。
      

  20.   

    Load事件成功了……
    没错,我一开始就使用全屏。我这个是一个全屏显示程序……
    不过每一个Label的布局出了问题……
    有没有能把多个已经排列好的Label当做一个整体进行调整的?还是得把Label一个个地改啊……