Pertanyaan Bagaimana cara mendapatkan ukuran ketinggian bentuk Formulir Winforms?


Jadi, jika itu adalah toolwindow atau bentuk yang dapat diminimalkan, saya ingin bisa mendapatkan ketinggiannya secara terprogram.

Apakah ini mungkin? Jika demikian bagaimana caranya?


32
2018-01-07 18:32


asal


Jawaban:


Anda dapat menentukan tinggi batang judul untuk kedua jendela alat dan bentuk normal dengan menggunakan:

Rectangle screenRectangle=RectangleToScreen(this.ClientRectangle);

int titleHeight = screenRectangle.Top - this.Top;

Di mana 'ini' adalah formulir Anda.

ClientRectangle mengembalikan batas area klien dari formulir Anda. RectangleToScreen mengonversi ini ke koordinat layar yang merupakan sistem koordinat yang sama dengan lokasi layar Formulir.


45
2018-01-07 18:36



Ada tambahan kerut jika formulir Anda adalah tampilan dalam aplikasi MDI. Dalam hal ini RectangleToScreen (this.ClientRectangle) mengembalikan koordinat relatif tidak ke Form itu sendiri (seperti yang diharapkan) tetapi sehubungan dengan MainForm yang menjadi host kontrol MDIClient hosting Formulir.

Anda dapat menghitungnya dengan

Point pnt = new Point(0, 0);
Point corner = this.PointToScreen(pnt); // upper left in MainFrame coordinates
Point origin = this.Parent.PointToScreen(pnt); // MDIClient upperleft in MainFrame coordinates
int titleBarHeight = corner.Y - origin.Y - this.Location.Y;

2
2018-04-26 22:48



Ini akan memberi Anda TitleBarsize:

form.ClientRectangle.Height - form.Height;

0
2017-12-07 12:56