[英]Child windows docking in MDI forms
我有一個MDI表格和一些子表格。 我將子窗體停靠在MDI窗口的不同區域,但是當任何一個子窗體失去焦點時,其他停靠的窗體將重新排列。 由於混亂,我准備了一組圖像來顯示行為。
Image1,在單擊任何窗口之前:
Image2,在單擊窗口2之后:
問題是,當最靠左停靠的窗體獲得焦點時,它將調整到MDI窗口的右端而不考慮窗口1的大小。
我該如何解決這個問題? 謝謝。
還有另一種解決方法。 一個非常快速的示例是:
現在創建2個新的Windows窗體(Form 2和Form3)。
現在,在Form1的主菜單中的InitializeComponent()下面,添加:
Form2 f2 = new Form2();
f2.TopLevel = false;
f2.Dock = DockStyle.Fill;
panel1.Controls.Add(f2);
f2.Show();
Form3 f3 = new Form3();
f3.TopLevel = false;
f3.Dock = DockStyle.Fill;
panel2.Controls.Add(f3);
f3.Show();
這是有點不同的方法,但是應該可以正常工作。
您是否嘗試過在子窗體(W2)的Resize方法上固定大小?
//something like this
private void W2_Resize(object sender, EventArgs e)
{
Size pSize = this.ClientSize;
// Resize the form
}
或使用Focus方法。 我不知道這是否會引起性能問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.