-1

MDI を使用して正常に動作する前は、ListForm を MainForm に表示できました。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 で、関数の外側に整数を作成しました。

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 を使用せずに両方のフォームを開くことができましたが (やや回り道をしていますが)、別の問題が残っています。 ()))。

おそらく私がその問題を理解したら(もしそうなら)、この回答を編集しますが、今のところこれで終わりです。これがうまくいくことを願っています!

于 2012-04-27T16:32:55.967 に答える
0

MainForm をマスター ページのようなものにしたい場合は、MainForm のみを使用して、他のすべてのマスクをフォームとしてではなく、その MainForm に配置するコントロールとして設計できます。

于 2012-04-27T15:47:18.410 に答える