将一个窗体的TopLevel设置为false后,该窗体上的某些控件失去应有效果的解决方案

最近在做项目的过程中遇到了一个问题,我将form1窗体做如下操作:

        SlowTractionForm form1 = new SlowTractionForm(DatabaseOperation, SysCommon);
        form1.FormBorderStyle = FormBorderStyle.None;
        form1.Tag = this;
        form1.TopLevel = false;
        form1.Dock = DockStyle.Fill;
        form1.Visible = true;          
        superTabItem_LowTraction.Text = slowTractionForm.Text;  //superTabItem_LowTraction  另一个窗体中的控件           
        superTabItem_LowTraction.AttachedControl.Controls.Add(slowTractionForm);

如上操作后,程序运行后,form1中MyGridBubbleBarEditControl自定义控件原有的效果不再出现,百思不得其解,后来无意中将“form1.TopLevel = false;”这句注释掉,控件的效果又出现了,但是项目中由于需要又不能将form1.TopLevel = true,最后受到网友的启发,将SlowTractionForm作为用户控件,使之继承UserControl,这样就避开了需要设置TopLevel的问题,最终MyGridBubbleBarEditControl控件的效果正常显示。

将一个窗体的TopLevel设置为false后,该窗体上的某些控件失去应有效果的解决方案

上一篇:Win10 家庭版 VMware 无法启动 解决办法


下一篇:VMware Workstation pro无法在Windows上运行,检查可在Windows上运行的此应用的更新版本