窗体嵌入Panel遇到的问题

foxd 2014-11-23 10:44:46
Winform程序。
我想把别的窗体嵌入到主窗体中的一个Panel中去显示,就用了如下代码:

Form1 frm = new Form1();
frm.TopLevel = false; //设置窗体为非顶级窗体
frm.FormBorderStyle = FormBorderStyle.None; //设置窗体没有边框
panel1.Controls.Add(frm);
frm.Show();

这样虽然窗体是嵌入panel1了,然而由于 frm.FormBorderStyle = FormBorderStyle.None; 致使嵌入后没了边框及相应的按钮,怎么关闭它? 若是去掉该语句我发现会出现一个问题,即子窗体内若有ComboBox控件的话运行时点击不会有焦点,也就是说无法选中ComboBox控件,如之奈何?谢谢!
...全文
129 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
rrt_2353881254 2014-11-24
  • 打赏
  • 举报
回复
嵌入Panel切换窗体容器内容示例 //嵌入Panel页面设置 <form id="form1" runat="server"> <div> <asp:Panel ID="plShow" runat="server"> </asp:Panel> </div>//codego.net/tags/11/1/ <asp:Button ID="btnlogin" runat="server" onclick="btnlogin_Click" Text="登录" /> <asp:Button ID="btnreg" runat="server" onclick="btnreg_Click" Text="注册" /> </form> //切换容器事件 protected void btnlogin_Click(object sender, EventArgs e) { Label lb1 = new Label(); lb1.Text = "用户名:"; Label lb2 = new Label(); lb2.Text = "密 码:"; TextBox txtname = new TextBox(); txtname.ID = "txtN"; TextBox txtpwd = new TextBox(); txtpwd.ID = "txtP"; plShow.Controls.Clear(); plShow.Controls.Add(lb1); plShow.Controls.Add(txtname); plShow.Controls.Add(new LiteralControl("<br>")); plShow.Controls.Add(new LiteralControl("<br>")); plShow.Controls.Add(lb2); plShow.Controls.Add(txtpwd); } protected void btnreg_Click(object sender, EventArgs e) { plShow.Controls.Clear(); Label lb1 = new Label(); lb1.Text = "用户名:"; Label lb2 = new Label(); lb2.Text = "密 码:"; Label lb3 = new Label(); lb3.Text = "性 别:"; Label lb4 = new Label(); lb4.Text = "地 址:"; TextBox txtname = new TextBox(); txtname.ID = "txtN"; TextBox txtpwd = new TextBox(); txtpwd.ID = "txtP"; RadioButtonList rb = new RadioButtonList(); rb.Items.Add("男"); rb.Items.Add("女"); rb.ID = "rbsex"; rb.RepeatDirection = RepeatDirection.Horizontal; rb.SelectedIndex = 0; TextBox txtaddr = new TextBox(); txtaddr.ID = "txtaddress"; plShow.Controls.Clear(); plShow.Controls.Add(lb1); plShow.Controls.Add(txtname); plShow.Controls.Add(new LiteralControl("<br>")); plShow.Controls.Add(new LiteralControl("<br>")); plShow.Controls.Add(lb2); plShow.Controls.Add(txtpwd); plShow.Controls.Add(new LiteralControl("<br>")); plShow.Controls.Add(new LiteralControl("<br>")); plShow.Controls.Add(lb3); plShow.Controls.Add(rb); plShow.Controls.Add(new LiteralControl("<br>")); plShow.Controls.Add(new LiteralControl("<br>")); plShow.Controls.Add(lb4); plShow.Controls.Add(txtaddr); }
xian_wwq 2014-11-23
  • 打赏
  • 举报
回复
换成tabcontrol试试

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧