如果某个控件的dock属性设置为fill,在运行时改变窗体的大小,他的width,height不发生变化?怎么我的始终是一个固定值?高手告诉我怎么得到这时他的实际大小?

解决方案 »

  1. loveyzy(菌哥)的正解,不过还要减去容器的边框大小
      

  2. 直接引用控件的  .Width .Height 或 .Size 就可以了
    dock之后,这些属性会跟着变的。
      

  3. to weisunding(鼎鼎):
    应该不是, delphi里可以,不过在vs里不行!不过如果真如 dbspro(冷锋)所说的话,那多麻烦,希望 microsoft下次直接加上这个功能
      

  4. 如果不行,你再试试ClientRectangle什么的
      

  5. private void Form1_Load(object sender, System.EventArgs e)
    {
     this.SizeChanged+=new EventHandler(Form1_SizeChanged);
    MessageBox.Show (this.Width .ToString (),this.Height .ToString ());
    MessageBox.Show (panel1.Width .ToString (),this.Height .ToString ());

    }width 相等;
    height 相差为8是标题栏的宽度.
      

类似问题 »