显示默认表单

时间:2012-04-27 13:10:47

标签: c# winforms master

在我使用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();
        }

有人有任何想法吗?

2 个答案:

答案 0 :(得分:0)

如果您希望MainForm类似于母版页,则只能使用MainForm并将所有其他蒙版设计为不作为表单,而是设置为您在MainForm上放置的控件。

答案 1 :(得分:0)

好吧,我想我想办法在Initialization上打开一个继承表单。 首先,在我的MainForm中,我在任何函数之外创建了一个整数:

private int a = 1;

然后,对于我的mainform,我创建了一个受保护的虚拟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())。

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