Jusqu'ici dans ma vie, en tant que développeur .net, j'ai beaucoup utilisé les formes mdi pour afficher des "points de menu" particuliers comme par exemple "module 1" "module 2" et ainsi sur.C# menu principal et formes mdi
Je fais ce de la manière suivante:
- créer un formulaire parent « IsMdiContainer » à « true »
- créer une bande de menu dans le conteneur IMD
- créer un enfant forme mise en œuvre singleton pour que la forme à afficher une seule fois
- Ajouter quelque chose comme le code suivant au conteneur IMD:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Myapp
{
public partial class MdiContainer : Form
{
private module1 Module1Window;
private module2 Module2Window;
private module3 Module3Window;
public FormContainer()
{
InitializeComponent();
this.Module1Window = modul1.getInstance();
this.Module1Window.MdiParent = this;
this.Module2Window = modul2.getInstance();
this.Module2Window.MdiParent = this;
this.Module3Window = modul3.getInstance();
this.Module3Window.MdiParent = this;
this.Module1Window.Show();
}
private void module1ToolStripMenuItem_Click(object sender, EventArgs e)
{
this.Module3Window.Hide();
this.Module2Window.Hide();
this.Module1Window.Show();
}
private void module2ToolStripMenuItem_Click(object sender, EventArgs e)
{
this.Module1Window.Hide();
this.Module3Window.Hide();
this.Module2Window.Show();
}
private void module3ToolStripMenuItem_Click(object sender, EventArgs e)
{
this.Module1Window.Hide();
this.Module2Window.Hide();
this.Module3Window.Show();
}
}
}
Maintenant, cela fonctionne évidemment très bien. Mais c'est une douleur à maintenir. Chaque fois que je veux ajouter une autre forme d'enfant, je dois:
- mettre en œuvre Singleton
- créer la propriété correspondante dans le conteneur IMD
- obtenir l'instance et définissez le parent IMD
- Masquer la nouvelle forme lorsque d'autres boutons sont cliqués
- afficher le formulaire et cacher toutes les autres formes lorsque le bouton correspondant est cliqué
Ce qui est une approche plus élégante ou laisse dire efficace pour archiver cela?
Si j'ai bien compris: vous utilisez des MDI pour gérer différents formulaires - mais en affichant uniquement un formulaire à la fois. Pourquoi? –
Je ne pense pas que cela va compiler. Est-ce MdiContainer ou FormContainer? –