Devexpress TabHeader消失

时间:2018-12-24 19:31:05

标签: c# winforms devexpress

我创建了功能区表单(XtraMain),并将IsMdiContainer属性设置为true,我还添加了documentManager控件,将MdiParent设置为XtraMain,我添加了此代码以打开子表单

public void ViewChildForm(XtraForm _form)
    {
        if (!IsFormActived(_form))
        {
            _form.MdiParent = this;
            _form.Show();
        }

    }
  private bool IsFormActived(XtraForm form)
    {
        bool IsOpenend = false;
        if (MdiChildren.Count() > 0)
        {
            foreach (var item in MdiChildren)
            {
                if (form.Name == item.Name)
                {

                    tabbedView1.ActivateDocument(item);
                    IsOpenend = true;
                }

            }
        }
        return IsOpenend;
    }

我在单击按钮时使用此代码打开子窗体

        private void bbtnEmployee_ItemClick(object sender, ItemClickEventArgs e)
    {
        FrmEmployee frme = new FrmEmployee();
        frme.Name = "FrmEmployee";
        ViewChildForm(frme);
    }

当表单包含LayoutControl时,我的问题就开始了,例如,我有单击该按钮时打开的代码

        private void btnBonLivraison_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
    {
        LayoutControl lc = new LayoutControl();
        lc.Dock = DockStyle.Top;
        LookUpEdit OrderNumber = new LookUpEdit();
        OrderNumber.Properties.TextEditStyle = TextEditStyles.DisableTextEditor;
        OrderNumber.Properties.DataSource = shippProdu.GetOrderNumber();
        OrderNumber.Properties.DisplayMember = "N° Bon de livraison";
        OrderNumber.Properties.ValueMember = "N° Bon de livraison";
        lc.AddItem(Resources.selectOrderNumber, OrderNumber).TextVisible = true;
        lc.Height = 70;
        this.Controls.Add(lc);
        this.Dock = DockStyle.Top;
        lc.BestFit();

第二次我单击按钮tabHeader消失,这是什么原因引起的?如何解决它。在我使用documentManager之前,我使用了XtraTabControl,如果我单击一个按钮来打开LayoutControl,然后尝试打开另一个表单即使已经打开了第二个表单,焦点仍然保留在第一个表单中,如果我要进入第二个表单,我必须首先单击第一个表单的标签,然后单击第二个表单的标签,预先感谢。 这是我的主要形式 enter image description here

这是渴望消失的时候 enter image description here

1 个答案:

答案 0 :(得分:1)

如果DocumentManager驻留在与您添加LayoutControl相同的表单内,则这是预期的行为。 DocumentManager将特殊文档的宿主放置在主窗体上,并将其Dock属性设置为Fill。这就是为什么将LayoutControl放置在同一窗体上并将其停靠到窗体边缘是不正确的。

如果需要在同一窗体上同时显示选项卡式文档和LayoutControl,请不要使用MDI模式。考虑使用单独的UserControl。将您的DocumentManager放在此处。然后,将此UserControl放在您的窗体上。请注意,在这种情况下,由于LayoutControl应该填充所有可用区域,因此UserControl的Dock属性应该设置为Top或Bottom。