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 } }
Nederlandse vertaling
U hebt gevraagd om deze site in het Nederlands te bezoeken. Voor nu wordt alleen de interface vertaald, maar nog niet alle inhoud.Als je me wilt helpen met vertalingen, is je bijdrage welkom. Het enige dat u hoeft te doen, is u op de site registreren en mij een bericht sturen waarin u wordt gevraagd om u toe te voegen aan de groep vertalers, zodat u de gewenste pagina's kunt vertalen. Een link onderaan elke vertaalde pagina geeft aan dat u de vertaler bent en heeft een link naar uw profiel.
Bij voorbaat dank.
Document heeft de 17/12/2006 gemaakt, de laatste keer de 26/10/2018 gewijzigd
Bron van het afgedrukte document:https://www.gaudry.be/nl/bibliobrol-view-mainform.html
De infobrol is een persoonlijke site waarvan de inhoud uitsluitend mijn verantwoordelijkheid is. De tekst is beschikbaar onder CreativeCommons-licentie (BY-NC-SA). Meer info op de gebruiksvoorwaarden en de auteur.