public void Load()
 {
     try
     {
         if (File.Exists(FilePath))
         {
             data = this.iniParser.ReadFile(FilePath, encoding);
         }
         else if (DefaultPath != null && File.Exists(DefaultPath))
         {
             data = this.iniParser.ReadFile(DefaultPath, encoding);
         }
         else
         {
             data = new IniData();
         }
     }
     catch (IniParser.Exceptions.ParsingException exc)
     {
         // Add the path to the exception (since IniParser doesn't do this) and throw again:
         // throw new IniParser.Exceptions.ParsingException($"{Path} couldn't be parsed: {e.Message}", e);
         throw IniParsingException.CreateException(exc, FilePath);
     }
     UpdateLastModifiedDate();
 }
        public static DialogResult OpenDialog(IniParsingException exc)
        {
            FormIniError form = new FormIniError();

            form.Exception = exc;

            form.labelErrorMessage.Text = exc.Message;
            form.labelFileName.Text     = exc.FileName;
            form.labelLineNumber.Text   = exc.LineNumber.ToString();

            // Fill rich text box:
            StreamReader reader     = File.OpenText(exc.FilePath);
            int          lineNumber = 0;

            while (!reader.EndOfStream)
            {
                string line = reader.ReadLine();
                if (line == null)
                {
                    break;
                }
                lineNumber++;

                string lineNumStr = $"{lineNumber} ".PadLeft(4);
                if (lineNumber == exc.LineNumber)
                {
                    form.richTextBox.AppendRichText(lineNumStr, false, Color.Red);
                    form.richTextBox.AppendRichText(line.PadRight(48), true, Color.White, Color.Red);
                }
                else if (Math.Abs(lineNumber - exc.LineNumber) <= 3)
                {
                    form.richTextBox.AppendRichText(lineNumStr, false, Color.FromArgb(120, 120, 120));
                    form.richTextBox.AppendRichText(line, true);
                }
            }
            reader.Close();

            form.HideDetails();

            return(form.ShowDialog());
        }