hibara / MarkDownSharpEditor

Markdown text ediotr for Windows and multi bytes character
http://hibara.org/software/markdownsharpeditor/
141 stars 98 forks source link

スクロールバー位置の保存 #3

Closed mattn closed 11 years ago

mattn commented 11 years ago

こちらも部分的なパッチですみません

diff --git a/MarkDownSharpEditor/Form1.cs b/MarkDownSharpEditor/Form1.cs
--- a/MarkDownSharpEditor/Form1.cs
+++ b/MarkDownSharpEditor/Form1.cs
@@ -946,6 +946,15 @@ private void PreviewToBrowser()
            //エンコーディングしつつbyte値に変換する(richEditBoxは基本的にutf-8 = 65001)
            byte[] bytesData = Encoding.GetEncoding(CodePageNum).GetBytes(ResultText);

+           //スクロールバーの位置を退避しておく
+           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)
            {
@@ -980,6 +989,15 @@ private void PreviewToBrowser()

            }

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

        //----------------------------------------------------------------------