【问题标题】:Devexpress TabHeader DisappearsDevexpress TabHeader 消失
【发布时间】:2018-12-24 19:31:04
【问题描述】:

我已经创建了功能区表单 (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,然后尝试打开另一个表单即使表格二已经打开,焦点仍保留在第一个表格中,如果我想进入表格二,我必须先单击第一个表格的选项卡,然后单击第二个表格的选项卡,提前致谢。 这是我的主要形式

这就是 eader 消失的时候

【问题讨论】:

    标签: c# winforms devexpress


    【解决方案1】:

    如果 DocumentManager 位于您添加 LayoutControl 的同一表单中,则这是预期的行为。 DocumentManager 将一个特殊文档的主机放置在主窗体上,并将其 Dock 属性设置为 Fill。这就是为什么将 LayoutControl 放在同一个窗体上并将其停靠到窗体边缘是不正确的原因。

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

    【讨论】:

    • 我已经添加了图片,所以我的问题很清楚,请有任何建议
    • 我明白了。我说的是同样的行为。您有机会尝试我建议的方法吗?
    • 请多多包涵,我想采用的方法是“同时在同一个表单上显示选项卡式文档和 LayoutControl”,现在我将您的答案分为两部分,第一个“做不使用 MDI 模式”如果我禁用此选项它是如何工作的。第二部分“考虑使用单独的 UserControl”,我已经使用 DocumentManager 添加了一个 UserControl,但我无法弄清楚如何添加到主功能区表单。这是我第一次使用 UserControl
    • 我能够将 UserControle 添加到主功能区表单,但我仍然无法将其用作 tabbedView。
    • 您的 UserControl 应该包含 DocumentManager。文档应该包含特殊的用户控件,而不是表单。如果这没有帮助,我建议联系 DevExpress 支持团队 (devexpress.com/Support/Center/Question/Create) 并在那里发布您的测试项目。我相信他们会帮助你。
    猜你喜欢
    • 1970-01-01
    • 2013-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多