Bibliobrol : Fenêtre principale
Le code qui suit est le code de la page principale de l'application Bibliobrol. Il nous permet d'utiliser les fenêtres Mdi, et de tester certaines notions comme par exemple le MdiLayout.
Cette page contiendra les explications nécessaires par la suite.
Code c# (MainForm.cs) (866 lignes)
using System; using System.Drawing; using System.Windows.Forms; using be.gaudry.bibliobrol.config; using be.gaudry.bibliobrol.model; using be.gaudry.bibliobrol.view.controls.toolBars; using be.gaudry.bibliobrol.view.dialogs; using be.gaudry.bibliobrol.view.wizards; using be.gaudry.explorer.view; using be.gaudry.model.config; using be.gaudry.model.exceptions; using be.gaudry.observer; using be.gaudry.view; using be.gaudry.view.controls; using be.gaudry.view.dialogs; using be.gaudry.model.enums; using be.gaudry.bibliobrol.model.enums; namespace be.gaudry.bibliobrol.view { public partial class MainForm : MDIParentForm { #region declarations private String hideCons, dispCons; private ConsoleForm consoleForm; private ToolBarConsoleControl toolBarConsole; private IToolBarControl toolBarStart, toolBarPersonAndBrol; private AboutBibliobrolDialog aboutBox; private ToolStripMenuItem showHideQuickLaunchTsMi; private ToolStripMenuItem personsTsMi, showPersonsFormTsMi, showAddUserFormTsMi; private ToolStripMenuItem brolsTsMi, showBrolsFormTsMi, showEditSeriesFormTsMi; private ToolStripMenuItem mediabrolsTsMi, showMediabrolsFormTsMi; private ToolStripMenuItem findTsMi, showSearchOnDiscFormTsMi, showBrowserFormTsMi, showAwsFormTsMi; private ToolStripMenuItem openOldApplicationTsMi; private ToolStripMenuItem showImportedImagesFormTsMi, showStatsFormTsMi, //brolExplorerTSMenuItem, showTasksTsMi, consoleTSMenuItem, showConsoleCtlTsMi, showConsoleFormTsMi, clearConsoleTsMi, consoleOpacityTsMi, consoleOpacity50TsMi, consoleOpacity70TsMi, consoleOpacity90TsMi, consoleOpacity95TsMi, consoleOpacity100TsMi; private ToolStripMenuItem showUpdateFormTsMi, showWelcomeWizardTsMi; #endregion #region constructors and initializations public MainForm() { //set console before any control because console to allow listening application events StaticObservable.hideErrors(); InitializeComponent(); Splasher.Status = "Initialisation des composants BiblioBrol"; initMainFormFeatures(); addMainFormToolBars(); Splasher.Status = "Initialisation de la console"; initConsoleForm(); Splasher.Status = "Initialisation de la config"; testApplicationConfig(); this.ResumeLayout(false); this.PerformLayout(); //StaticObservable.showErrors(); } private void addMainFormToolBars() { toolBarManagerControl.addToolBar(toolBarConsole); toolBarManagerControl.addToolBar(toolBarStart); toolBarManagerControl.addToolBar(toolBarPersonAndBrol); leftPanel.Controls.Add( toolBarShortCuts); toolBarShortCuts.Dock = DockStyle.Fill; this.AboutImage = global::be.gaudry.bibliobrol.Properties.Resources.AboutBoxBiblioBrol; } private void initMainFormFeatures() { //brolExplorerTSMenuItem = new ToolStripMenuItem(); // // personsTsMi // personsTsMi.DropDownItems.AddRange( { showPersonsFormTsMi, showAddUserFormTsMi }); personsTsMi.MergeAction = MergeAction.MatchOnly; personsTsMi.Name = "personsTsMi"; personsTsMi.Text = "&Personnes"; personsTsMi.ToolTipText = "Gestion des personnes (utilisateurs de l\'application, acteurs, dessinateurs, écrivains, etc.)"; // // showPersonsFormTsMi // showPersonsFormTsMi.Image = global::be.gaudry.bibliobrol.Properties.Resources.brolUsrs; showPersonsFormTsMi.Name = "showPersonsFormTsMi"; showPersonsFormTsMi.Text = "&Gérer les personnes"; mainMenuStrip.Items.Insert(1, personsTsMi); // // showAddUserFormTsMi // showAddUserFormTsMi.Image = global::be.gaudry.bibliobrol.Properties.Resources.brolUsrAddBtn; showAddUserFormTsMi.Name = "showAddUserFormTsMi"; showAddUserFormTsMi.Text = "Ajouter un utilisateur"; // // displayMenuLeftTsB (declared in the MDIParentForm) // displayMenuLeftTsB.Visible = true; leftPanel.Visible = true; displayMenuLeftTsB.Text = "Afficher ou masquer la barre de lancement rapide"; displayMenuLeftTsB.AutoToolTip = true; // // showHideQuickLaunchTsMi // showHideQuickLaunchTsMi.Image = global::be.gaudry.Properties.Resources.displayMenuLeft; showHideQuickLaunchTsMi.Name = "showHideQuickLaunchTsMi"; showHideQuickLaunchTsMi.Text = "Lancement rapide"; displayToolBarTsMi.DropDownItems.Add(showHideQuickLaunchTsMi); // // brolsTsMi // brolsTsMi.DropDownItems.AddRange( { showBrolsFormTsMi, showEditSeriesFormTsMi }); brolsTsMi.Name = "brolsTsMi"; brolsTsMi.Text = "&Ouvrages"; brolsTsMi.ToolTipText = "Gestion des ouvrages. "+ "(Rappel : un ouvrage est un type générique, ce que vous possédez, ce sont des exemplaires)"; mainMenuStrip.Items.Insert(1, brolsTsMi); // // showBrolsFormTsMi // showBrolsFormTsMi.Image = global::be.gaudry.bibliobrol.Properties.Resources.brolSmall; showBrolsFormTsMi.MergeAction = MergeAction.Insert; showBrolsFormTsMi.Name = "showBrolsFormTsMi"; showBrolsFormTsMi.Text = "&Gérer les ouvrages"; // // showEditSeriesFormTsMi // showEditSeriesFormTsMi.Name = "showEditSeriesFormTsMi"; showEditSeriesFormTsMi.Text = "Gérer les séries"; // // mediabrolsTsMi // mediabrolsTsMi.DropDownItems.Add(showMediabrolsFormTsMi); mediabrolsTsMi.Name = "mediabrolsTsMi"; mediabrolsTsMi.Text = "E&xemplaires"; mediabrolsTsMi.ToolTipText = "Gérer les exemplaires (localisation, état, propriétaire, emprunts)"; mainMenuStrip.Items.Insert(1, mediabrolsTsMi); // // showMediabrolsFormTsMi // showMediabrolsFormTsMi.Image = global::be.gaudry.bibliobrol.Properties.Resources.mediabrolSmall; showMediabrolsFormTsMi.MergeAction = MergeAction.MatchOnly; showMediabrolsFormTsMi.Name = "showMediabrolsFormTsMi"; showMediabrolsFormTsMi.Text = "&Gérer les exemplaires"; // // findTsMi // findTsMi.DropDownItems.AddRange( { showSearchOnDiscFormTsMi, showBrowserFormTsMi, showAwsFormTsMi }); findTsMi.Name = "findTsMi"; findTsMi.Text = "&Recherche"; mainMenuStrip.Items.Insert(1, findTsMi); // // showSearchOnDiscFormTsMi // showSearchOnDiscFormTsMi.Name = "showSearchOnDiscFormTsMi"; showSearchOnDiscFormTsMi.Text = "Sur le disque (Automatique)"; // // showBrowserFormTsMi // showBrowserFormTsMi.Name = "showBrowserFormTsMi"; showBrowserFormTsMi.Text = "Sur le disque (Explorer)"; // // showAwsFormTsMi // showAwsFormTsMi.Name = "showAwsFormTsMi"; showAwsFormTsMi.Text = "Bases de données Internet"; // // openOldApplicationTsMi // openOldApplicationTsMi.Image = global::be.gaudry.bibliobrol.Properties.Resources.brolWindows; openOldApplicationTsMi.Name = "openOldApplicationTsMi"; openOldApplicationTsMi.Text = "Ancienne version"; openOldApplicationTsMi.ToolTipText = "Fermer cette fenêtre et ouvrir l'ancienne version"; windowTsMi.DropDownItems.Add(openOldApplicationTsMi); // // toolsTsMi (declared in the MDIParentForm) // toolsTsMi.DropDownItems.AddRange( { showStatsFormTsMi, //brolExplorerTSMenuItem, showTasksTsMi, showImportedImagesFormTsMi, consoleTSMenuItem }); // // optionsTSMenuItem (declared in the MDIParentForm) // // // showImportedImagesFormTsMi // showImportedImagesFormTsMi.Name = "showImportedImagesFormTsMi"; showImportedImagesFormTsMi.Text = "Gestion des BIF"; showImportedImagesFormTsMi.ToolTipText = "Affichage des fichiers d'images brolDev (BIF)"; // // showStatsFormTsMi // showStatsFormTsMi.Image = global::be.gaudry.bibliobrol.Properties.Resources.statsSmall; showStatsFormTsMi.Name = "showStatsFormTsMi"; showStatsFormTsMi.Text = "Statistiques"; showStatsFormTsMi.ToolTipText = "Affichage de certaines informations sous forme de tartes"; // // showTasksTsMi // showTasksTsMi.Name = "showTasksTsMi"; showTasksTsMi.Text = "Tâches"; // // consoleTSMenuItem // consoleTSMenuItem.DropDownItems.AddRange( { showConsoleCtlTsMi, showConsoleFormTsMi, clearConsoleTsMi, consoleOpacityTsMi }); consoleTSMenuItem.Image = global::be.gaudry.bibliobrol.Properties.Resources.brolConsole; consoleTSMenuItem.Name = "consoleTSMenuItem"; consoleTSMenuItem.Text = "&Console"; consoleTSMenuItem.ToolTipText = "Gestion de la console locale"; // // showConsoleCtlTsMi // showConsoleCtlTsMi.Image = global::be.gaudry.bibliobrol.Properties.Resources.brolConsole; showConsoleCtlTsMi.Name = "showConsoleCtlTsMi"; showConsoleCtlTsMi.Text = "Montrer/Cacher la console (Assistant)"; showConsoleCtlTsMi.ToolTipText = "Afficher ou masquer la console dans le volet assistant."; // // showConsoleFormTsMi // showConsoleFormTsMi.Image = global::be.gaudry.bibliobrol.Properties.Resources.brolConsoleHide; showConsoleFormTsMi.Name = "showConsoleFormTsMi"; showConsoleFormTsMi.Text = dispCons; showConsoleFormTsMi.ToolTipText = "Afficher ou masquer la console dans une fenêtre indépendante."; // // clearConsoleTsMi // clearConsoleTsMi.Image = global::be.gaudry.bibliobrol.Properties.Resources.brolConsoleClean; clearConsoleTsMi.Name = "clearConsoleTSMenuItem"; clearConsoleTsMi.Text = "Vider la console"; clearConsoleTsMi.ToolTipText = "Réinitialiser le contenu de la console"; // // consoleOpacityTsMi // consoleOpacityTsMi.DropDownItems.AddRange( { consoleOpacity50TsMi, consoleOpacity70TsMi, consoleOpacity90TsMi, consoleOpacity95TsMi, consoleOpacity100TsMi }); consoleOpacityTsMi.Image = global::be.gaudry.bibliobrol.Properties.Resources.brolConsoleOp; consoleOpacityTsMi.Name = "consoleOpacityTsMi"; consoleOpacityTsMi.Text = "Opacité"; // // consoleOpacity50TsMi // consoleOpacity50TsMi.Image = global::be.gaudry.bibliobrol.Properties.Resources.brolConsoleOp50; consoleOpacity50TsMi.Name = "consoleOpacity50TsMi"; consoleOpacity50TsMi.Text = "50 %"; // // consoleOpacity70TsMi // consoleOpacity70TsMi.Image = global::be.gaudry.bibliobrol.Properties.Resources.brolConsoleOp70; consoleOpacity70TsMi.Name = "consoleOpacity70TsMi"; consoleOpacity70TsMi.Text = "70 %"; // // consoleOpacity90TsMi // consoleOpacity90TsMi.Image = global::be.gaudry.bibliobrol.Properties.Resources.brolConsoleOp90; consoleOpacity90TsMi.Name = "consoleOpacity90TsMi"; consoleOpacity90TsMi.Text = "90 %"; // // consoleOpacity95TsMi // consoleOpacity95TsMi.Image = global::be.gaudry.bibliobrol.Properties.Resources.brolConsoleOp95; consoleOpacity95TsMi.Name = "consoleOpacity95TsMi"; consoleOpacity95TsMi.Text = "95 %"; // // consoleOpacity100TsMi // consoleOpacity100TsMi.Image = global::be.gaudry.bibliobrol.Properties.Resources.brolConsoleOp; consoleOpacity100TsMi.Name = "consoleOpacity100TsMi"; consoleOpacity100TsMi.Text = "100 %"; // // helpTsMi (declared in the MDIParentForm) // helpTsMi.DropDownItems.AddRange( { showUpdateFormTsMi, showWelcomeWizardTsMi }); // // showUpdateFormTsMi // showUpdateFormTsMi.Name = "showUpdateFormTsMi"; showUpdateFormTsMi.Text = "Mises à jour..."; // // showWelcomeWizardTsMi // showWelcomeWizardTsMi.Image = global::be.gaudry.bibliobrol.Properties.Resources.wizardSmall; showWelcomeWizardTsMi.Name = "showWelcomeWizardTsMi"; showWelcomeWizardTsMi.Text = "Assistant de démarrage"; showWelcomeWizardTsMi.ToolTipText = "Assistant pas à pas pour configurer l\'application (localisation des répertoires, " + "de la DB, etc.)"; // // contentsTSMenuItem (declared in the MDIParentForm) // //contentsTSMenuItem.Click += new System.EventHandler(this.showWelcomeWizardAction); // // indexTSMenuItem (declared in the MDIParentForm) // //indexTSMenuItem.Click += new System.EventHandler(this.showWelcomeWizardAction); // // searchToolStripMenuItem (declared in the MDIParentForm) // //searchToolStripMenuItem.Click += new System.EventHandler(this.showWelcomeWizardAction); // // aboutTSMenuItem (declared in the MDIParentForm) // aboutTSMenuItem.Text = "À &propos de Bibliobrol..."; //aboutTSMenuItem.Click += new System.EventHandler(this.openAbout_Click); } #endregion #region open childs private void personsTSB_Click(object sender, EventArgs e) { StaticObservable.hideErrors(); showMDIChild<ActorForm>("Chargement des personnes"); StaticObservable.showErrors(); } private void openUserForm_Click(object sender, EventArgs e) { showMDIChild<UserForm>("Chargement du formulaire d'ajout d'utilisateur"); } private void brolsTSB_Click(object sender, EventArgs e) { showMDIChild<BrolForm>("Chargement des ouvrages"); } private void mediabrolsTSB_Click(object sender, EventArgs e) { showMDIChild<MediabrolForm>("Chargement des exemplaires"); } private void openImportedImagesForm_Click(object sender, EventArgs e) { showMDIChild<ImportedImagesForm>(); } private void statsTSB_Click(object sender, EventArgs e) { showMDIChild<StatsForm>("Chargement des statistiques"); } private void openEditSeriesForm_Click(object sender, EventArgs e) { showMDIChild<EditSeriesForm>("Chargement des séries"); } private void showAwsFormAction(object sender, EventArgs e) { showMDIChild<AWSForm>("Chargement du service de recherche"); } private void showTasksFormAction(object sender, EventArgs e) { showMDIChild<TasksForm>("Chargement des tâches"); } private void brolXplorerTSB_Click(object sender, EventArgs e) { showBrolExplorerForm(true); } private void brolXplorerSearchTSB_Click(object sender, EventArgs e) { showBrolExplorerForm(false); } private void showBrolExplorerForm(bool explore) { ExplorerForm brolExplorerForm = createMDIChild<ExplorerForm>(); if (explore) { brolExplorerForm.openExplorer(); } else { brolExplorerForm.openMediaBrowser(); } showMDIChild(brolExplorerForm); } private void showPhotobrolTSB_Click(object sender, EventArgs e) { if (PluginsManager.PhotoBrolPlugAvailable) { showMDIChild<be.gaudry.photobrol.view.PhotoBrolMainForm>("Chargement de l'éditeur d'images"); } } private void openOldMainFormTsBtn_Click(object sender, EventArgs e) { form.WindowState = this.WindowState; form.Location = this.Location; form.Width = this.Width; form.Height = this.Height; form.Show(); } private void showWelcomeWizardAction(object sender, EventArgs e) { showMDIChild<WelcomeWizardForm>("Chargement des données pour l'assistant de démarrage"); } private void onShowUpdateForm_Click(object sender, EventArgs e) { VersionForm versionForm = createMDIChild<VersionForm>("Chargement des données de version"); versionForm.addSystemInfoTitle("Persistance"); versionForm.addSystemInfoItem("Version", String.Format("Version {0}", Config.DBVersion)); versionForm.addSystemInfoItem("Type", EnumHelper.GetDescription(Config.PersistentType)); versionForm.setAssembly(System.Reflection.Assembly.GetExecutingAssembly()); showMDIChild(versionForm); } protected override void showAboutBox_Click(object sender, EventArgs e) { aboutBox.ShowDialog(this); } protected override void showOptions_Click(object sender, EventArgs e) { optionForm.Owner = this; optionForm.Show(); } #endregion #region Console private void initConsoleForm() { hideCons = "Fermer la fenêtre de console"; dispCons = "Ouvrir la fenêtre de console"; { setStatusMessage("Bibliobrol utilisé par " + Config.Owner + ", dans la session de " + Environment.UserName); } //consoleForm.setMDIParent(this); consoleForm.StartPosition = FormStartPosition.Manual; if (Config.ShowConsoleForm) { consoleForm.Show(this); showConsoleFormTsMi.Text = hideCons; } else { showConsoleFormTsMi.Text = dispCons; } //consoleForm.MdiParent = this; consoleOpacity50TsMi.Tag = 0.5; consoleOpacity70TsMi.Tag = 0.7; consoleOpacity90TsMi.Tag = 0.9; consoleOpacity95TsMi.Tag = 0.95; consoleOpacity100TsMi.Tag = 1.0; } private void consoleTSMenuItem_Paint(object sender, PaintEventArgs e) { bool disp = Config.ShowConsoleForm; consoleOpacityTsMi.Enabled = disp; //clearConsoleTSMenuItem.Enabled = disp; clearConsoleTsMi.Enabled = consoleForm!=null && (consoleForm.ConsoleCount > 0); setConsoleButtonsState(); } /// <summary> /// Set buttons images, toolstrip text, and enabled or not /// </summary> private void setConsoleButtonsState() { if (Config.ShowConsoleForm) { showConsoleFormTsMi.Text = hideCons; showConsoleFormTsMi.Image = global::be.gaudry.bibliobrol.Properties.Resources.brolConsoleHide; dispConsTSB.ToolTipText = hideCons; dispConsTSB.Image = global::be.gaudry.bibliobrol.Properties.Resources.brolConsoleHide; } else { showConsoleFormTsMi.Text = dispCons; showConsoleFormTsMi.Image = global::be.gaudry.bibliobrol.Properties.Resources.brolConsole; dispConsTSB.ToolTipText = dispCons; dispConsTSB.Image = global::be.gaudry.bibliobrol.Properties.Resources.brolConsole; } cleanConsoleTSB.Enabled = clearConsoleTsMi.Enabled; } private void clearConsole_Click(object sender, EventArgs e) { consoleForm.consoleClear(); } /// <summary> /// Shows the console on an independant <code>Form</code>, or hides it if it's shown. /// Sets the console menu and buttons. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void showHideConsole_Click(object sender, EventArgs e) { Config.ShowConsoleForm = !Config.ShowConsoleForm; setConsoleButtonsState(); } /// <summary> /// Shows the console on the assistant panel. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void showHideConsoleCtl_Click(object sender, EventArgs e) { showToolBar(toolBarConsole); } #region Console Opacity private void consoleOpacityValTSMenuItem_Click(object sender, EventArgs e) { consoleForm.Opacity = (double)((ToolStripItem)sender).Tag; } private void consoleOpacityTsMi_Paint(object sender, PaintEventArgs e) { foreach (ToolStripItem item in consoleOpacityTsMi.DropDownItems) { item.Enabled = (!item.Tag.Equals(consoleForm.Opacity)); } } //Console Opacity #endregion //Console #endregion #region test application validity /// <summary> /// Try forms initializations. /// If no persistance available, a message is displayed, and the wizard is set as the first page. /// </summary> public void testApplicationConfig() { if (!System.IO.Directory.Exists(Config.DataDirectory)) { /*StringBuilder str = new StringBuilder("Impossible de trouver le répertoire de données de l'application ("); str.Append(RefactoredConfig.DataDirectory); str.Append(").\n\nIl est possible de modifier la RefactoredConfiguration dans l'écran de RefactoredConfiguration qui va s'afficher, ou dans le menu \"Outils/Options\""); StaticObservable.notify(new Notification(Notification.VERBOSE.opsResult, "RefactoredConfiguration Bibliobrol", str.ToString(), this)); */ enableApplication(false); } else { try { model.ModelAdapter.isAvailablePersistance(); enableApplication(true); } catch (PersistanceNotFoundException) { /*StringBuilder str = new StringBuilder(e.Message); str.AppendLine("\n\nIl est possible de modifier la RefactoredConfiguration dans le menu \"Outils/Options\", puis sélectionner \"Persistance\"..."); str.AppendLine("\nAucune fonctionnalité de l'application ne sera disponible tant que le système de persistance ne sera défini."); str.AppendLine("Des messages d'erreur peuvent se présenter avant de RefactoredConfigurer le système de persistance, ignorez les."); StaticObservable.notify(new Notification(Notification.VERBOSE.opsResult, "RefactoredConfiguration Bibliobrol", str.ToString(), this)); */ enableApplication(false); } } } /// <summary> /// Allow to use application buttons if data dir path and persistant are found /// </summary> /// <param name="enable"></param> private void enableApplication(bool enable) { //borrowsTSMenuItem.Visible = enable; showBrolsFormTsMi.Visible = enable; showPersonsFormTsMi.Visible = enable; showMediabrolsFormTsMi.Visible = enable; showStatsFormTsMi.Visible = enable; if (!enable) { wwf.MdiParent = this; wwf.WindowState = FormWindowState.Maximized; wwf.Show(); } } #endregion #region form events private void MainForm_Load(object sender, EventArgs e) { //// Allow to open this application by clicking on an other file than the executable file //// Before, you should launch once BrolDeploy to associate file extension and BiblioBrol application //try //{ // /* // * For each application, Environment.GetCommandLineArgs().Length returns at least 1 (executable path) // * if we have a second arg, it will be the database path // */ // if (Environment.GetCommandLineArgs().Length == 2) // { // /*StaticObservable.notify( // new Notification( // Notification.VERBOSE.advancedOperation, // "Chargement du fichier: " + Environment.GetCommandLineArgs()[1], // this // ));*/ // string dbpath = Environment.GetCommandLineArgs()[1]; // Splasher.Status = "Chargement du fichier " + dbpath; // //MessageBox.Show("path : " + dbpath); // // The file is an Access file; set the dao to use Access as persistence type // if (dbpath.EndsWith(".bdb") || dbpath.EndsWith(".bdb3") || dbpath.EndsWith(".bdb7")) // { // string dirPath = System.IO.Path.GetDirectoryName(dbpath); // /* todo : // * Now we can set only one storage directory for the database and the other bibliobrol directories. // * Use another executable arg to say if we must set only database directory // */ // Config.saveDataDirectory(dirPath); // Config.savePersistenceType(PERSISTENCE_TYPE.Access); // model.dao.config.AccessConfig dbConfig = new model.dao.config.AccessConfig(); // if (dbpath.EndsWith(".bdb7")) // { // dbConfig.AccessVersion = ACCESS_VERSION.Access07; // } // else // { // dbConfig.AccessVersion = ACCESS_VERSION.Access03; // } // dbConfig.DBPath = dirPath; // dbConfig.DBFileName = System.IO.Path.GetFileName(dbpath); // dbConfig.save(); // be.gaudry.bibliobrol.model.dao.DAOFactory.resetDAO(); // } // // The file is an broldev image file // else if (dbpath.EndsWith(".bif")) // { // //MessageBox.Show("bif : " + dbpath); // /*ImportedImagesForm form = createMDIChild<ImportedImagesForm>(); // form.openBif(dbpath); // showMDIChild(form);*/ // } // } //} //catch (Exception ex) //{ // StaticObservable.notify( // new Notification( // Notification.VERBOSE.advancedOperation, // "Chargement du fichier: " + Environment.GetCommandLineArgs()[1], // ex, // this // )); //} } private void MainForm_Shown(object sender, EventArgs e) { Splasher.close(); StaticObservable.showErrors(); } private void MainForm_FormClosing(object sender, FormClosingEventArgs e) { Config.save(); } #endregion } }
Version en cache
21/11/2024 09:43:30 Cette version de la page est en cache (à la date du 21/11/2024 09:43:30) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.Document créé le 17/12/2006, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/bibliobrol-view-mainform.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.