[.NET]為何在Panel中From裡的TextBox沒辦法選取文字

將 Form2 加入到 Form1 的 Panel之中,
發現 Form2 中的 TextBox 居然無法用Mouse去選取文字!!!

有朋友問「關於將Form加入Panel出現的奇怪問題」,

他將 Form2 加入到 Form1 的 Panel之中,


Form2 f2 = new Form2();
f2.TopLevel = false;
f2.Visible = true;
this.panel1.Controls.Add(f2);

 

執行之後會發現 Form2 中的 TextBox 居然無法用Mouse去選取文字,

image

 

後來查到「Windows Forms: Unable to Click to Focus a MaskedTextBox in a Non TopLevel Form」,

再設定 Form2 的 FormBorderStyle 屬性為 System.Windows.Forms.FormBorderStyle.None,

就可以正常被選取文字了。


Form2 f2 = new Form2();
f2.TopLevel = false;
f2.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
f2.Visible = true;
this.panel1.Controls.Add(f2);

image

 

另外,設定ControlBox 為 false ,同時設定 Text 為空字串也可以哦!


Form2 f2 = new Form2();
f2.TopLevel = false;
f2.ControlBox = false;
f2.Text = string.Empty;
f2.Visible = true;
this.panel1.Controls.Add(f2);

image

Hi, 

亂馬客Blog已移到了 「亂馬客​ : Re:從零開始的軟體開發生活

請大家繼續支持 ^_^