Mdi child loader c#, c++ et vb.net

Description

Le code sert à a tous les langages de programmation. C'est une bibliothèque dynamique écrit en CSharp avec la fonctionne de contrôler l'état des fenêtres déjà ouvertes. Si une fenêtre est ouverte, il est mise en « Focus » mais ne pas charge une deuxième fois !

Deux applications d'exemple (CSharp Client et VB.NET Client) sont délivrées avec le source code.

Source / Exemple :


using System;
using System.Windows.Forms;
using System.Collections.Specialized;
using System.Drawing;

namespace MDICC
{
	public class MDIChldCtrl
	{
        private static HybridDictionary yourInitializedForms = new HybridDictionary();

		public static void mdiccLoad(Type childFormType, Form childFormLoader)
		{
			if (frmIsLoaded(childFormType))
			{
				for(int i = 0; i < childFormLoader.MdiChildren.Length; i++)
				{
					if(childFormLoader.MdiChildren[i].GetType().ToString() == childFormType.ToString())
					{
						childFormLoader.MdiChildren[i].Focus();
						return;
					}
				}
			}
			else
			{
				frmLoadedFlag(childFormType);
				Form frm = (Form)Activator.CreateInstance(childFormType);
				frm.MdiParent = childFormLoader;
				frm.Name = childFormType.Name;
				frm.Closed += new EventHandler(FormClosed);
				frm.Show();
			}
		}

		private static void frmLoadedFlag(Type frmType)

		{
			yourInitializedForms[frmType.Name] = true;
		}

		private static void frmNotLoadedFlag(Type frmType)
		{
			yourInitializedForms[frmType.Name] = false;
		}

		private static bool frmIsLoaded(Type frmType)
		{
			return ((yourInitializedForms[frmType.Name] != null) && (bool)yourInitializedForms[frmType.Name] == true);
		}

		private static void FormClosed(object sender, EventArgs e)
		{
			Form frmCloser = (Form)sender;
			frmCloser.Closed -= new EventHandler(FormClosed);
			frmNotLoadedFlag(sender.GetType());
		}
	}
}

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.