窗口上有一label和cmobobox,这设计视图中已经把他们设置为水平居中,但当窗口最大化显示时他们却不动,于是就跑到窗口的靠左的地方啦,有没有方法在窗口最大化后任然保持水平居中!
我设置过ANCHOR属性,结果CMOBOBOX被拉长了,这不是我需要的!!

解决方案 »

  1.   

    如果既要保持原来的Size又要保持位置比例那就需要:
    protected override void OnSizeChanged(EventArgs e)
    {
        int offset = (this.ClientSize.Width - this.cmobobox.Width) / 2;
        Point location = new Point(offset, this.cmobobox.Location.Y);
        this.cmobobox.Location = location;
        base.OnSizeChanged(e);
    }
      

  2.   


    dock不行,这个属性是停靠到FORM的四边!!
      

  3.   

     Location();
     或控件名.Top=,,
       .left=...
      控件.show();
      

  4.   

    先用tablelayoutpanel 画好格,dock属性改成fill
    然后把你的控件放到 里边(可能还要改一下dock),就可以了
      

  5.   

     要在窗口大小变化的情况下依然保持你要的结果,那么你就在窗口变化事件里将控件的location 和size设置下。
      

  6.   

    1:Anchor设置为None
    或者
    2:tablelayoutpanel,设置3列1行,其中中间的一列为固定列宽,两边各为50%,tablelayoutpanel本生也可以再设置
      

  7.   

    把两个控件的Anchor都设为None不久不怕拉长了嘛~