-1

在我使用 MDI 并且它运行良好之前,我可以在 MainForm 中显示我的 ListForm。现在我不想使用 MDI,它没有用。

之前,使用 Mdi:

public partial class Le_MainForm : DevExpress.XtraEditors.XtraForm
    {
        public Le_MainForm()
        { 
            InitializeComponent();
            this.IsMdiContainer = true;
            this.Name = "MainUSER";

            if (Program.IsFA) barButtonItem_OrdList.Visibility = DevExpress.XtraBars.BarItemVisibility.Never;

            Liste_Ordres f_Liste = new Liste_Ordres();
            f_Liste.MdiParent = this;
            f_Liste.Show();
        }




        private void barButtonItem_ListeOrdres_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            Close_AllForm();
            Liste_Ordres f_Liste = new Liste_Ordres();
            f_Liste.MdiParent = this;
            f_Liste.Show();
        }

        private void barButtonItem_CreatOrdreAller_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            Close_AllForm();
            Program.AllerRetour = "Ordre Aller";
            Fiche_Ordre f_Fiche = new Fiche_Ordre();
            f_Fiche.MdiParent = this;
            f_Fiche.Show();
        }

现在,在我消除了 Mdi 之后 //this.IsMdiContainer = true;

以及从 MainForm 继承的所有表单:

public partial class Liste_Ordres : Le_MainForm
    {
    .....

我无法在 MainFrom 中显示我的 ListeForm

public partial class Le_MainForm : DevExpress.XtraEditors.XtraForm
    {
        public Le_MainForm()
        { 
            InitializeComponent();
            //this.IsMdiContainer = true;
            this.Name = "MainUSER";

            if (Program.IsFA) barButtonItem_OrdList.Visibility = DevExpress.XtraBars.BarItemVisibility.Never;

            Liste_Ordres f_Liste = new Liste_Ordres();
            // f_Liste.MdiParent = this;
            f_Liste.Show();
        }

有人有什么想法吗?

4

2 回答 2

0

如果您希望 MainForm 类似于母版页,则可以仅使用 MainForm 并将所有其他掩码设计为不作为 Forms 而是作为放置在该 MainForm 上的控件。

于 2012-04-27T15:47:18.410 回答
0

好的,我想我想出了一种在初始化时打开继承表单的方法。首先,在我的 MainForm 中,我在任何函数之外创建了一个整数:

private int a = 1;

然后对于我的主窗体,我创建了一个受保护的虚拟 on_Load 事件:

protected virtual void Le_MainForm_Load(object sender, EventArgs e)
{
    if (a == 1)
    {
        Liste_Ordres frm = new Liste_Ordres();
        frm.Show();
        a = 0;
    }
}

接下来在我的继承表单中,我覆盖了 on_Load 事件:

protected override void Form1_Load(object sender, EventArgs e)
{

}

至少在不使用 Mdi 的情况下打开了两个表单(尽管是以一种相当迂回的方式),但现在另一个问题仍然存在:当两个表单都打开时,MainForm 在继承之前打开(无论您是否尝试使用函数 BringToFront() 和 SendToBack ())。

也许当我解决这个问题时(如果我这样做了),那么我会编辑这个答案,但现在这就是结束了。希望这有效!

于 2012-04-27T16:32:55.967 回答