Exemplo n.º 1
0
        //----------------------------------------------------------------------
        // BackgroundWorker browser preview
        //----------------------------------------------------------------------
        private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
        {
            string ResultText = (string)e.Argument;
            string MkResultText = "";

            string BackgroundColorString;
            string EncodingName;

            //編集中のファイル名
            //Editing file name
            string FileName = (_MarkDownTextFilePath == "" ? "" : Path.GetFileName(_MarkDownTextFilePath));
            //DOCTYPE
            HtmlHeader htmlHeader = new HtmlHeader();
            string DocType = htmlHeader.GetHtmlHeader(MarkDownSharpEditor.AppSettings.Instance.HtmlDocType);

            //マーキングの色づけ
            //Marker's color
            if (MarkDownSharpEditor.AppSettings.Instance.fHtmlHighLightColor == true)
            {
                Color ColorBackground = Color.FromArgb(MarkDownSharpEditor.AppSettings.Instance.HtmlHighLightColor);
                BackgroundColorString = ColorTranslator.ToHtml(ColorBackground);
            }
            else
            {
                BackgroundColorString = "none";
            }

            //指定のエンコーディング
            //Codepage
            int CodePageNum = MarkDownSharpEditor.AppSettings.Instance.CodePageNumber;
            try
            {
                Encoding enc = Encoding.GetEncoding(CodePageNum);
                //ブラウザ表示に対応したエンコーディングか
                //Is the encoding supported browser?
                if (enc.IsBrowserDisplay == true)
                {
                    EncodingName = enc.WebName;
                }
                else
                {
                    EncodingName = "utf-8";
                }
            }
            catch
            {
                //エンコーディングの取得に失敗した場合
                //Default encoding if failing to get encoding
                EncodingName = "utf-8";
            }
            //Header
            string header = string.Format(
            @"{0}
            <html>
            <head>
            <meta http-equiv='Content-Type' content='text/html; charset={1}' />
            <link rel='stylesheet' href='{2}' type='text/css' />
            <style type='text/css'>
             ._mk {{background-color:{3}}}
            </style>
            <title>{4}</title>
            </head>
            <body>
            ",
            DocType,               //DOCTYPE
            EncodingName,          //エンコーディング ( encoding )
            _SelectedCssFilePath,   //適用中のCSSファイル ( Selected CSS file )
            BackgroundColorString, //編集箇所の背景色 ( background color in Editing )
            FileName);             //タイトル(=ファイル名) ( title = file name )

            //Footer
            string footer = "</body>\n</html>";

            //-----------------------------------
            //Markdown parse ( default )
            //Markdown mkdwn = new Markdown();
            //-----------------------------------

            //-----------------------------------
            // MarkdownDeep
            // Create an instance of Markdown
            //-----------------------------------
            var mkdwn = new MarkdownDeep.Markdown();
            // Set options
            mkdwn.ExtraMode = MarkDownSharpEditor.AppSettings.Instance.fMarkdownExtraMode;
            mkdwn.SafeMode = false;
            //-----------------------------------

            ResultText = mkdwn.Transform(ResultText);
            //表示するHTMLデータを作成
            //Creat HTML data
            ResultText = header + ResultText + footer;

            //パースされた内容から編集行を探す
            //Search editing line in parsed data
            string OneLine;
            StringReader sr = new StringReader(ResultText);
            StringWriter sw = new StringWriter();
            while ((OneLine = sr.ReadLine()) != null)
            {
                if (OneLine.IndexOf("<!-- edit -->") >= 0)
                {
                    MkResultText += ("<div class='_mk'>" + OneLine + "</div>\n");
                }
                else
                {
                    MkResultText += (OneLine + "\n");
                }
            }

            //エンコーディングしつつbyte値に変換する(richEditBoxは基本的にutf-8 = 65001)
            //Encode and convert it to 'byte' value ( richEditBox default encoding is utf-8 = 65001 )
            byte[] bytesData = Encoding.GetEncoding(CodePageNum).GetBytes(MkResultText);

            //-----------------------------------
            // Write to temporay file
            if (_fNoTitle == false)
            {
                //テンポラリファイルパスを取得する
                //Get temporary file path
                if (_TemporaryHtmlFilePath == "")
                {
                    _TemporaryHtmlFilePath = Get_TemporaryHtmlFilePath(_MarkDownTextFilePath);
                }
                //他のプロセスからのテンポラリファイルの参照と削除を許可して開く(でないと飛ぶ)
                //Open temporary file to allow references from other processes
                using (FileStream fs = new FileStream(
                    _TemporaryHtmlFilePath,
                    FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.Read | FileShare.Delete))
                {
                    fs.Write(bytesData, 0, bytesData.Length);
                    e.Result = _TemporaryHtmlFilePath;
                }
            }
            //-----------------------------------
            // Navigate and view in browser
            else
            {
                //Write data as it is, if the editing data is no title
                ResultText = Encoding.GetEncoding(CodePageNum).GetString(bytesData);
                e.Result = ResultText;
            }
        }
Exemplo n.º 2
0
        //----------------------------------------------------------------------
        // HTML形式出力 ( Output to HTML file )
        //----------------------------------------------------------------------
        private bool OutputToHtmlFile(string FilePath, string SaveToFilePath, bool fToClipboard = false)
        {
            if (File.Exists(FilePath) == false)
            {
                return (false);
            }

            //出力内容 ( Output data )
            string ResultText = "";
            //HTMLタグ ( HTML Header tag )
            string HeaderString = "";
            string FooterString = "";
            //文字コード ( Character encoding )
            string EncodingName;
            Encoding encRead = Encoding.UTF8;
            Encoding encHtml = Encoding.UTF8;

            //-----------------------------------
            //編集中のファイルパス or 投げ込まれたファイルパス
            //Editing file path or Drag & Dropped files
            string FileName = Path.GetFileName(FilePath);

            //-----------------------------------
            //DOCTYPE
            HtmlHeader htmlHeader = new HtmlHeader();
            string DocType = htmlHeader.GetHtmlHeader(MarkDownSharpEditor.AppSettings.Instance.HtmlDocType);
            //Web用の相対パス
            //Relative url
            string CssPath = RerativeFilePath(FilePath, _SelectedCssFilePath);

            //-----------------------------------
            //指定のエンコーディング
            //Codepage
            int CodePageNum = MarkDownSharpEditor.AppSettings.Instance.CodePageNumber;
            try
            {
                encHtml = Encoding.GetEncoding(CodePageNum);
                //ブラウザ表示に対応したエンコーディングか
                //Is the encoding supported browser?
                if (encHtml.IsBrowserDisplay == true)
                {
                    EncodingName = encHtml.WebName;
                }
                else
                {
                    EncodingName = "utf-8";
                    encHtml = Encoding.UTF8;
                }
            }
            catch
            {
                //エンコーディングの取得に失敗した場合はデフォルト
                //Default encoding if failing to get encoding
                EncodingName = "utf-8";
                encHtml = Encoding.UTF8;
            }

            //HTMLのヘッダを挿入する
            //Insert HTML Header
            if (MarkDownSharpEditor.AppSettings.Instance.fHtmlOutputHeader == true)
            {
                //CSSファイルを埋め込む
                //Embeding CSS file contents
                if (MarkDownSharpEditor.AppSettings.Instance.HtmlCssFileOption == 0)
                {
                    string CssContents = "";

                    if (File.Exists(_SelectedCssFilePath) == true)
                    {
                        using (StreamReader sr = new StreamReader(_SelectedCssFilePath, encHtml))
                        {
                            CssContents = sr.ReadToEnd();
                        }
                    }

                    //ヘッダ ( Header )
                    HeaderString = string.Format(
            @"{0}
            <html>
            <head>
            <meta http-equiv='Content-Type' content='text/html; charset={1}' />
            <title>{2}</title>
            <style>
            <!--
            {3}
            -->
            </style>
            </head>
            <body>
            ",
                        DocType,         //DOCTYPE
                        EncodingName,    //エンコーディング ( Encoding )
                        FileName,        //タイトル(=ファイル名) ( Title = file name )
                        CssContents);	   //CSSの内容 ( Contents of CSS file )
                }
                //metaタグ(外部リンキング)(Meta tag: external linking )
                else
                {
                    //ヘッダ ( Header )
                    HeaderString = string.Format(
            @"{0}
            <html>
            <head>
            <meta http-equiv='Content-Type' content='text/html; charset={1}' />
            <link rel='stylesheet' href='{2}' type='text/css' />
            <title>{3}</title>
            </head>
            <body>
            ",
                DocType,         //DOCTYPE
                EncodingName,    //エンコーディング ( Encoding )
                CssPath,         //CSSファイル(相対パス)( Relative url )
                FileName);		   //タイトル(=ファイル名) ( Title = file name )
                }
                //フッタ ( Footer )
                FooterString = "</body>\n</html>";
            }
            else
            {
                HeaderString = "";
                FooterString = "";
            }

            //-----------------------------------
            //Markdown parse ( default )
            //Markdown mkdwn = new Markdown();
            //-----------------------------------

            //-----------------------------------
            // MarkdownDeep
            // Create an instance of Markdown
            //-----------------------------------
            var mkdwn = new MarkdownDeep.Markdown();
            // Set options
            mkdwn.ExtraMode = MarkDownSharpEditor.AppSettings.Instance.fMarkdownExtraMode;
            mkdwn.SafeMode = false;
            //-----------------------------------

            //編集中のファイル(richEditBoxの内容)
            //Editing file path
            if (_MarkDownTextFilePath == FilePath)
            {
                ResultText = mkdwn.Transform(richTextBox1.Text);
                //エンコーディング変換(richEditBoxは基本的にutf-8)
                //Convert encoding ( richEditBox default encoding is utf-8 = 65001 )
                ResultText = ConvertStringToEncoding(ResultText, Encoding.UTF8.CodePage, CodePageNum);
            }
            else
            {
                //テキストファイルを開いてその文字コードに従って読み込み
                //Detect encoding in the text file
                byte[] bs;
                using (FileStream fs = new FileStream(FilePath, FileMode.Open, FileAccess.Read))
                {
                    bs = new byte[fs.Length];
                    fs.Read(bs, 0, bs.Length);
                }
                //文字コードを取得する
                //Get charcter encoding
                encRead = GetCode(bs);
                //取得したバイト列を文字列に変換
                //Convert byte values to character
                ResultText = encRead.GetString(bs);

                //UTF-8でないならいったん変換してパース
                //Convert it if encoding is not utf-8
                if (encRead != Encoding.UTF8)
                {
                    ResultText = ConvertStringToEncoding(ResultText, encRead.CodePage, CodePageNum);
                }
                ResultText = mkdwn.Transform(ResultText);
            }

            //ヘッダ+本文+フッタ
            //Header + Contents + Footer
            ResultText = HeaderString + ResultText + FooterString;
            //出力するHTMLファイルの文字コードに合わせる
            //Ajust encoding to output HTML file
            ResultText = ConvertStringToEncoding(ResultText, Encoding.UTF8.CodePage, CodePageNum);

            if (fToClipboard == true)
            {	//クリップボードに書き込む
                //Set data to clipbord
                Clipboard.SetText(ResultText);
            }
            else
            {	//ファイルに書き込む
                //Write file
                using (StreamWriter sw = new StreamWriter(SaveToFilePath, false, encHtml))
                {
                    sw.Write(ResultText);
                }
            }
            return (true);
        }
Exemplo n.º 3
0
        //----------------------------------------------------------------------
        // TODO: HTML形式出力
        //----------------------------------------------------------------------
        private bool OutputToHtmlFile(string FilePath, string SaveToFilePath, bool fToClipboard = false)
        {
            if ( File.Exists(FilePath) == false )
            {
                return (false);
            }

            //出力内容
            string ResultText = "";
            //HTMLタグ
            string HeaderString = "";
            string  FooterString = "";
            //文字コード
            string EncodingName;
            Encoding encRead = Encoding.UTF8;
            Encoding encHtml = Encoding.UTF8;

            //-----------------------------------
            //編集中のファイルパス or 投げ込まれたファイルパス
            string FileName = Path.GetFileName(FilePath);

            //-----------------------------------
            //指定のDOCTYPE
            HtmlHeader htmlHeader = new HtmlHeader();
            string DocType = htmlHeader.GetHtmlHeader(MarkDownSharpEditor.AppSettings.Instance.HtmlDocType);
            //Web用の相対パス
            string CssPath = RerativeFilePath(FilePath, SelectedCssFilePath);

            //-----------------------------------
            //指定のエンコーディング
            int CodePageNum = MarkDownSharpEditor.AppSettings.Instance.CodePageNumber;
            try
            {
                encHtml = Encoding.GetEncoding(CodePageNum);
                //ブラウザ表示に対応したエンコーディングか
                if (encHtml.IsBrowserDisplay == true)
                {
                    EncodingName = encHtml.WebName;
                }
                else
                {
                    EncodingName = "utf-8";
                    encHtml = Encoding.UTF8;
                }
            }
            catch
            {
                //エンコーディングの取得に失敗した場合はデフォルト
                EncodingName = "utf-8";
                encHtml = Encoding.UTF8;
            }

            //HTMLのヘッダを挿入する
            if (MarkDownSharpEditor.AppSettings.Instance.fHtmlOutputHeader == true)
            {
                //CSSファイルを埋め込む
                if (MarkDownSharpEditor.AppSettings.Instance.HtmlCssFileOption == 0)
                {
                    string CssContents = "";

                    if (File.Exists(SelectedCssFilePath) == true)
                    {
                        using (StreamReader sr = new StreamReader(SelectedCssFilePath, encHtml))
                        {
                            CssContents = sr.ReadToEnd();
                        }
                    }

                    //ヘッダ
                    HeaderString = string.Format(
            @"{0}
            <html>
            <head>
            <meta http-equiv='Content-Type' content='text/html; charset={1}' />
            <title>{2}</title>
            <style>
            <!--
            {3}
            -->
            </style>
            </head>
            <body>
            ",
                        DocType,         //DOCTYPE
                        EncodingName,    //エンコーディング
                        FileName,        //タイトル(=ファイル名)
                        CssContents);	 //CSSの内容
                    }
                    //metaタグ(外部リンキング)
                    else
                    {
                        //ヘッダ
                        HeaderString = string.Format(
            @"{0}
            <html>
            <head>
            <meta http-equiv='Content-Type' content='text/html; charset={1}' />
            <link rel='stylesheet' href='{2}' type='text/css' />
            <title>{3}</title>
            </head>
            <body>
            ",
                    DocType,         //DOCTYPE
                    EncodingName,    //エンコーディング
                    CssPath,         //CSSファイル(相対パス)
                    FileName);		 //タイトル(=ファイル名)
                }
                //フッタ
                FooterString = "</body>\n</html>";
            }
            else
            {
                HeaderString = "";
                FooterString = "";
            }

            //Markdownパース
            Markdown mkdwn = new Markdown();

            //編集中のファイル(richEditBoxの内容)
            if (MarkDownTextFilePath == FilePath)
            {
                ResultText = mkdwn.Transform(richTextBox1.Text);
                //エンコーディング変換(richEditBoxは基本的にutf-8)
                ResultText = ConvertStringToEncoding(ResultText, Encoding.UTF8.CodePage, CodePageNum);
            }
            else
            {
                //テキストファイルを開いてその文字コードに従って読み込み
                byte[] bs;
                using (FileStream fs = new FileStream(FilePath, FileMode.Open, FileAccess.Read))
                {
                    bs = new byte[fs.Length];
                    fs.Read(bs, 0, bs.Length);
                }
                //文字コードを取得する
                encRead = GetCode(bs);
                //取得したバイト列を文字列に変換
                ResultText = encRead.GetString(bs);

                //UTF-8でないならいったん変換してパース
                if (encRead != Encoding.UTF8)
                {
                    ResultText = ConvertStringToEncoding(ResultText, encRead.CodePage, CodePageNum);
                }
                ResultText = mkdwn.Transform(ResultText);
            }

            //ヘッダ+本文+フッタ
            ResultText = HeaderString + ResultText + FooterString;
            //出力するHTMLファイルの文字コードに合わせる
            ResultText = ConvertStringToEncoding(ResultText, Encoding.UTF8.CodePage, CodePageNum);

            if (fToClipboard == true)
            {	//クリップボードに書き込む
                Clipboard.SetText(ResultText);
            }
            else
            {	//ファイルに書き込む
                using (StreamWriter sw = new StreamWriter(SaveToFilePath, false, encHtml))
                {
                    sw.Write(ResultText);
                }
            }
            return (true);
        }
Exemplo n.º 4
0
        //----------------------------------------------------------------------
        // TODO: ブラウザプレビュー(編集中の内容を反映)
        //----------------------------------------------------------------------
        private void PreviewToBrowser()
        {
            //更新抑制中のときはプレビューしない
            if (fConstraintChange == true)
            {
                return;
            }

            string BackgroundColorString;
            string EncodingName;

            //編集中のファイル名
            string FileName = Path.GetFileName(MarkDownTextFilePath);
            //指定のDOCTYPE
            HtmlHeader htmlHeader = new HtmlHeader();
            string DocType = htmlHeader.GetHtmlHeader(MarkDownSharpEditor.AppSettings.Instance.HtmlDocType);

            //マーキングの色づけ
            if (MarkDownSharpEditor.AppSettings.Instance.fHtmlHighLightColor == true)
            {
                Color ColorBackground = Color.FromArgb(MarkDownSharpEditor.AppSettings.Instance.HtmlHighLightColor);
                BackgroundColorString = ColorTranslator.ToHtml(ColorBackground);
            }
            else
            {
                BackgroundColorString = "none";
            }

            //指定のエンコーディング
            int CodePageNum = MarkDownSharpEditor.AppSettings.Instance.CodePageNumber;
            try
            {
                Encoding enc = Encoding.GetEncoding(CodePageNum);
                //ブラウザ表示に対応したエンコーディングか
                if (enc.IsBrowserDisplay == true)
                {
                    EncodingName = enc.WebName;
                }
                else
                {
                    EncodingName = "utf-8";
                }
            }
            catch
            {
                //エンコーディングの取得に失敗した場合
                EncodingName = "utf-8";
            }
            //ヘッダ
            string header = string.Format(
            @"{0}
            <html>
            <head>
            <meta http-equiv='Content-Type' content='text/html; charset={1}' />
            <link rel='stylesheet' href='{2}' type='text/css' />
            <style type='text/css'>
             ._mk {{background-color:{3}}}
            </style>
            <title>{4}</title>
            </head>
            <body>
            ",
            DocType,               //DOCTYPE
            EncodingName,          //エンコーディング
            SelectedCssFilePath,   //適用中のCSSファイル
            BackgroundColorString, //編集箇所の背景色
            FileName);             //タイトル(=ファイル名)

            //フッタ
            string footer = "</body>\n</html>";

            //Markdownパース
            Markdown mkdwn = new Markdown();
            string ResultText = mkdwn.Transform(richTextBox1.Text);
            //表示するHTMLデータを作成
            ResultText = header + ResultText + footer;
            //エンコーディングしつつbyte値に変換する(richEditBoxは基本的にutf-8 = 65001)
            byte[] bytesData = Encoding.GetEncoding(CodePageNum).GetBytes(ResultText);

            if (fNoTitle == true)
            {
                //「無題」ファイルを編集中はナビゲートせずにそのまま書き込む
                ResultText = Encoding.GetEncoding(CodePageNum).GetString(bytesData);
                webBrowser1.Document.Write(ResultText);

                //ツールバーの「関連付けられたブラウザーを起動」を無効に
                toolStripButtonBrowserPreview.Enabled = false;

            }
            else
            {
                //テンポラリファイルパスを取得する
                if (TemporaryHtmlFilePath == "")
                {
                    TemporaryHtmlFilePath = GetTemporaryHtmlFilePath(MarkDownTextFilePath);
                }
                //他のプロセスからのテンポラリファイルの参照と削除を許可して開く(でないと飛ぶ)
                using (FileStream fs = new FileStream(
                    TemporaryHtmlFilePath,
                    FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.Read | FileShare.Delete))
                {
                    fs.Write(bytesData, 0, bytesData.Length);
                }

                //ナビゲート
                webBrowser1.Navigate(@"file://" + TemporaryHtmlFilePath);
                richTextBox1.Focus();

                toolStripButtonBrowserPreview.Enabled = true;

            }
        }
Exemplo n.º 5
0
        //----------------------------------------------------------------------
        // HACK: PreviewToBrowser [ ブラウザプレビュー ]
        //
        //----------------------------------------------------------------------
        private void PreviewToBrowser()
        {
            //更新抑制中のときはプレビューしない
            if (fConstraintChange == true)
            {
                timer1.Enabled = false;
                return;
            }

            string ResultText = "";
            string MkResultText = "";

            string BackgroundColorString;
            string EncodingName;

            //編集中のファイル名
            string FileName = Path.GetFileName(MarkDownTextFilePath);
            //指定のDOCTYPE
            HtmlHeader htmlHeader = new HtmlHeader();
            string DocType = htmlHeader.GetHtmlHeader(MarkDownSharpEditor.AppSettings.Instance.HtmlDocType);

            //マーキングの色づけ
            if (MarkDownSharpEditor.AppSettings.Instance.fHtmlHighLightColor == true)
            {
                Color ColorBackground = Color.FromArgb(MarkDownSharpEditor.AppSettings.Instance.HtmlHighLightColor);
                BackgroundColorString = ColorTranslator.ToHtml(ColorBackground);
            }
            else
            {
                BackgroundColorString = "none";
            }

            //指定のエンコーディング
            int CodePageNum = MarkDownSharpEditor.AppSettings.Instance.CodePageNumber;
            try
            {
                Encoding enc = Encoding.GetEncoding(CodePageNum);
                //ブラウザ表示に対応したエンコーディングか
                if (enc.IsBrowserDisplay == true)
                {
                    EncodingName = enc.WebName;
                }
                else
                {
                    EncodingName = "utf-8";
                }
            }
            catch
            {
                //エンコーディングの取得に失敗した場合
                EncodingName = "utf-8";
            }
            //ヘッダ
            string header = string.Format(
            @"{0}
            <html>
            <head>
            <meta http-equiv='Content-Type' content='text/html; charset={1}' />
            <link rel='stylesheet' href='{2}' type='text/css' />
            <style type='text/css'>
             ._mk {{background-color:{3}}}
            </style>
            <title>{4}</title>
            </head>
            <body>
            ",
            DocType,               //DOCTYPE
            EncodingName,          //エンコーディング
            SelectedCssFilePath,   //適用中のCSSファイル
            BackgroundColorString, //編集箇所の背景色
            FileName);             //タイトル(=ファイル名)

            //フッタ
            string footer = "</body>\n</html>";

            int NextLineNum, ParagraphStart;

            //編集箇所にマーカーを挿入する
            if (richTextBox1.SelectionStart > 0)
            {
                NextLineNum = richTextBox1.GetLineFromCharIndex(richTextBox1.SelectionStart) + 1;
                ParagraphStart = richTextBox1.GetFirstCharIndexOfCurrentLine();

                if (ParagraphStart == 0)
                {
                    ParagraphStart = 1;
                }

                ResultText =
                    richTextBox1.Text.Substring(0, ParagraphStart) + "<!-- edit -->" +
                    richTextBox1.Text.Substring(ParagraphStart);

            }
            else
            {
                ResultText = richTextBox1.Text;
            }

            //Markdownパース
            Markdown mkdwn = new Markdown();
            ResultText = mkdwn.Transform(ResultText);
            //表示するHTMLデータを作成
            ResultText = header + ResultText + footer;

            //パースされた内容から編集行を探す
            string OneLine;
            StringReader sr = new StringReader(ResultText);
            StringWriter sw = new StringWriter();
            while ((OneLine = sr.ReadLine()) != null)
            {
                if (OneLine.IndexOf("<!-- edit -->") >= 0)
                {
                    MkResultText += ("<div class='_mk'>" + OneLine + "</div>\n");
                }
                else
                {
                    MkResultText += (OneLine+"\n");
                }
            }

            //エンコーディングしつつbyte値に変換する(richEditBoxは基本的にutf-8 = 65001)
            byte[] bytesData = Encoding.GetEncoding(CodePageNum).GetBytes(MkResultText);

            //-----------------------------------
            //スクロールバーの位置を退避しておく
            HtmlDocument doc = webBrowser1.Document;
            Point scrollpos = new Point(0, 0);
            if (doc != null)
            {
                IHTMLDocument3 doc3 = (IHTMLDocument3)webBrowser1.Document.DomDocument;
                IHTMLElement2 elm = (IHTMLElement2)doc3.documentElement;
                scrollpos = new Point(elm.scrollLeft, elm.scrollTop);
            }

            //-----------------------------------
            if (fNoTitle == true)
            {
                //「無題」ファイルを編集中はナビゲートせずにそのまま書き込む
                ResultText = Encoding.GetEncoding(CodePageNum).GetString(bytesData);
                webBrowser1.DocumentText = MkResultText;
                //ツールバーの「関連付けられたブラウザーを起動」を無効に
                toolStripButtonBrowserPreview.Enabled = false;

            }
            else
            {
                //テンポラリファイルパスを取得する
                if (TemporaryHtmlFilePath == "")
                {
                    TemporaryHtmlFilePath = GetTemporaryHtmlFilePath(MarkDownTextFilePath);
                }
                //他のプロセスからのテンポラリファイルの参照と削除を許可して開く(でないと飛ぶ)
                using (FileStream fs = new FileStream(
                    TemporaryHtmlFilePath,
                    FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.Read | FileShare.Delete))
                {
                    fs.Write(bytesData, 0, bytesData.Length);
                }

                //ナビゲート
                webBrowser1.Navigate(@"file://" + TemporaryHtmlFilePath);
                richTextBox1.Focus();

                toolStripButtonBrowserPreview.Enabled = true;

            }

            //-----------------------------------
            //スクロールバーの位置を復帰する
            if (doc != null)
            {
                while (webBrowser1.ReadyState != WebBrowserReadyState.Complete)
                {
                    Application.DoEvents();
                }
                doc.Window.ScrollTo(scrollpos);
            }
        }