c# Form 签入到Pannel里

在C#中,当需要将一个Form显示在Panel内时,可以通过设置Form的TopLevel为false并指定其Parent为Panel来实现。代码示例中,在button1点击事件中,如果Panel1内已有1个Control(Form),则关闭它;接着创建新的Form,将其Dock样式设为Fill,并添加到Panel1中。需要注意,显示Form时应当使用frm.Show()而非frm.Show(this),以避免出现错误提示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



private void button1_Click(object sender, EventArgs e)
        {
            if (panel1.Controls.Count == 1)
                (panel1.Controls[0] as Form).Close();

            panel1.BringToFront();
            Form frm = new Form();
            frm.TopLevel = false;
            //panel1.Controls.Add(frm);
            frm.Parent = panel1;
            frm.Dock = DockStyle.Fill;
            frm.Show();
           
        }


如果写成 frm.Show(this);则会出现下面的错误提示,去掉this就好了

Form that is not a top-level form cannot be displayed as a modal dialog box. Remove the form from any parent form before calling Show.

c++builder
 FrmInfoBase = new TFrmInfoBase(Application, qry1);
 Frm
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值