我的問題的標題可能使它看起來像重復,但請提前閱讀,因為我的問題有點不同。
我正在嘗試復制一些流行的媒體播放器(如 MPC-HC 或 VLC)的最小尺寸功能,當您嘗試將其縮小時,它實作的最小尺寸是只有 MenuStrip 和 Player Controls 可見。
我為實作這一目標而撰寫的代碼是:
public NewMain()
{
InitializeComponent();
int ClientTop = RectangleToScreen(ClientRectangle).Top;
int height = menuStrip1.Height panel1.Height ClientTop - Top;
label4.Text = height.ToString();
MinimumSize = new Size(373, height);
}
問題是,當它運行時,它無法正常作業,并且menuStrip1仍然在底部panel1(停靠在底部)放置播放器控制元件的位置被阻擋。
下面是我能夠用上面的代碼實作的影像。

下一張圖片是我所期望的:

請注意,調整表單大小時左側的標簽會更新,右側的標簽是通過代碼確定的高度。
我的想法是添加Form'sTop和Top螢屏上可見的總矩形的差異,即標題欄的高度,否則生成的高度將更小并menuStrip1完全隱藏。我不想對任何值進行硬編碼,因為它會使界面不太適應我以后可能要做的更改。
uj5u.com熱心網友回復:
在這種情況下正確確定最小高度是保持計算相對,這可以通過以下方式獲得:
int height = Height - (panel1.Top - menuStrip1.Bottom);
所有功勞都歸功于提供此代碼的 Hans Passant。我只是將其發布為標記我的問題已解決的答案。謝謝你。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/348001.html
