Système de frame [Résolu]

Signaler
Messages postés
2
Date d'inscription
mardi 9 décembre 2003
Statut
Membre
Dernière intervention
6 février 2007
-
Messages postés
2
Date d'inscription
mardi 9 décembre 2003
Statut
Membre
Dernière intervention
6 février 2007
-
Bonjour, je suis en train de créer une application pour windows ce. Je voudrais que l'application appelle les autres fromulaires comme un système de frame. Mais, toujours dans le form principale. Et malheureusement, cela fait maintenant un moment que je n'ai pas fait de C#. J'ai une erreur de ce type : Cannot implicitly convert type 'NesWinCE2.Form_1' to 'NesWinCE2.MainForm'. Est ce que qqun a une solution ? Voici mon code :

public partial class MainForm : Form
    {
 
        //the one and only instance of the mainform
        publicstatic MainForm instance;
       
        publicstatic MainForm curPanel;
 
        public MainForm()
        {
            instance = this;
           
            InitializeComponent();
        }
 
        privatevoid MainForm_Load(object sender, EventArgs e)
        {
            //au chargement
            //MainForm.LoadPanel("main");
        }
 
        privatevoid button1_Click(object sender, EventArgs e)
        {
            MainForm.LoadPanel("form1");
        }
 
        privatevoid button2_Click(object sender, EventArgs e)
        {
            MainForm.LoadPanel("form2");
        }
 
        publicstaticvoid LoadPanel(String panelName)
        {
 
            //removes the old panel
            if(curPanel != null)
            {
                instance.Controls.Remove(curPanel);
            }
 
            switch(panelName)
            {
 
                case"form1":
                    MainForm.instance.txt_stat.Text = "Form 1";
                    curPanel = new Form_1();
                    instance.Controls.Add(new Form_1());
                    break;
 
                case"form2":
                    MainForm.instance.txt_stat.Text = "Form 2";
                    curPanel = new Form_2();
 
                    instance.Controls.Add(new Form_2());
                    break;
 
                default:
                    MainForm.instance.txt_stat.Text = "Default";
                    break;
            }
            instance.Refresh();
        }
 
 
        privatevoid pictureBox1_Click(object sender, EventArgs e)
        {
            MainForm.LoadPanel("form1");
        }
 
        privatevoid pictureBox2_Click(object sender, EventArgs e)
        {
            MainForm.LoadPanel("form2");
        }
 
        privatevoid btn_exit_Click(object sender, EventArgs e)
        {
            // ferme la fenetre
            this.Close();
        }
 
 
    }

Merci d'avance.
A voir également:

1 réponse

Messages postés
2
Date d'inscription
mardi 9 décembre 2003
Statut
Membre
Dernière intervention
6 février 2007

Problème résolu, voici la solution :    
(ne pas oublier de modifier le type en fonction des vos forms)

    public partial class MainForm : Form
    {
        public static MainForm instance;
        public static UserControl curPanel;


        public MainForm()
        {
            instance = this;
            curPanel = null;


            InitializeComponent();


            IO.Init("DIOINTF");


            // hide the cursor on Windows CE
            if (System.Environment.OSVersion.Platform == PlatformID.WinCE)
            {
                Cursor.Hide();
            }
        }


        private void MainForm_Load(object sender, EventArgs e)
        {
            // startup
            LoadPanel("mainpanel");
        }


        public static void LoadPanel(String panelName)
        {


            // remove old panel
            if (curPanel != null)
            {
                instance.Controls.Remove(curPanel);
            }




            switch (panelName)
            {
                case "mainpanel":
                    curPanel = new MainPanel();                
                    break;


                case "config_small_coffee":
                    curPanel = new ConfigSmallCoffee();
                    break;


                default:
                    LoadPanel("mainpanel");
                    break;
            }


            instance.Controls.Add(curPanel);
            instance.Refresh();
        }




    }