/// <summary>
        /// Called upon loading of the form.
        /// This method initializes the graph and the input mode.
        /// </summary>
        /// <seealso cref="InitializeGraph"/>
        protected virtual async void OnLoad(object src, EventArgs e)
        {
            try {
                // load description
                description.LoadFile(new MemoryStream(Resources.description), RichTextBoxStreamType.RichText);
                // add background
                object userObject = new BackgroundVisualCreator();
                graphControl.BackgroundGroup.AddChild(userObject);
                // initialize the graph
                InitializeGraph();
                InitializeStyles();

                // initialize the input mode
                InitializeInputModes();
                // initialize the options for size and label model
                SetupOptions();

                // do initial label placement
                await DoLabelPlacement();

                graphControl.FitGraphBounds();
            } catch (Exception exception) {
                MessageBox.Show(exception.Message, "Error loading form");
            }
        }
        /// <summary>
        /// Called upon loading of the form.
        /// This method initializes the graph and the input mode.
        /// </summary>
        /// <seealso cref="InitializeGraph"/>
        protected virtual async void OnLoad(object src, EventArgs e)
        {
            // add background
            object userObject = new BackgroundVisualCreator();

            graphControl.BackgroundGroup.AddChild(userObject);
            // initialize the graph
            InitializeGraph();
            InitializeStyles();

            // initialize the input mode
            InitializeInputModes();

            SetupOptions();

            // do initial label placement
            await DoLabelPlacement();

            graphControl.FitGraphBounds();
        }