How do I set the size of the visible area of a form, minus heading and borders?

前端 未结 3 981
无人共我
无人共我 2020-12-03 13:41

I would like to set my form to be exactly 300*300 excluding heading and borders.

If I use Size property, it does include these values.

Is there any way how t

相关标签:
3条回答
  • 2020-12-03 14:10

    Why not just factor in the size of the border and the title bar?

    int BorderWidth = (this.Width – this.ClientSize.Width) /2;
    int TitlebarHeight = this.Height – this.ClientSize.Height – 2 * BorderWidth;
    

    I found the formulas here.

    0 讨论(0)
  • 2020-12-03 14:16

    You have two options, as follows:

    • To remove heading and borders from a Form, disable the Form's FormBorderStyle property.

    • Set the interior of the form with the ClientSize property, as follows:

      this.ClientSize = new Size(300, 300);
      
    0 讨论(0)
  • 2020-12-03 14:17

    There is workaround to set proper Size by designer tool: 1. Set FormBorderSize to "None". 2. Set prefered Size (e.g. "300; 300"). 3. Set FormBorderSize to prefered border (additional needed space will be added to Size property automaticly).

    0 讨论(0)
提交回复
热议问题