C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: WebBrowserを使用したエディターでの改行について


(過去ログ 122 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■73013 / inTopicNo.1)  WebBrowserを使用したエディターでの改行について
  
□投稿者/ タッチ (1回)-(2014/08/11(Mon) 16:08:13)

分類:[VB.NET/VB2005 以降] 

VB2008を使用して、文章を簡単なHTML形式で保存できるような、WebBrowserを利用したエディターを
作成しようと思っています。
(今の所、フォームのロード時に以下のコードを書いただけです。)

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        WebBrowser1.DocumentText = "<html><body></body></html>"
        WebBrowser1.Document.DomDocument.designMode = "On"
    End Sub


参考サイト:http://hpcgi1.nifty.com/MADIA/vbnet/wwwlng.cgi?print+200805/08050002.txt

ただし、WebBrowser上のHTML内では、1行の文章が<p>タグで囲まれているようで、
文章の改行を行うと行間が広くて見栄えが悪いです。
かといって、例えば、bodyのスタイルを"lineHeight='1px'"のように固定にすると、
部分的に文字サイズを大きくすると文字が切れてしまいます。

改行には<p>タグでなく<br/>になるようにしたいのですが、
どのようにすればいいでしょうか?

引用返信 編集キー/
■73014 / inTopicNo.2)  Re[1]: WebBrowserを使用したエディターでの改行について
□投稿者/ 魔界の仮面弁士 (74回)-(2014/08/11(Mon) 16:36:09)
No73013 (タッチ さん) に返信
> 改行には<p>タグでなく<br/>になるようにしたいのですが、
> どのようにすればいいでしょうか?

Microsoft Word と同じ入力方法ですね。

Enter は段落の区切りで、
Shift + Enter が物理改行です。
引用返信 編集キー/
■73019 / inTopicNo.3)  Re[2]: WebBrowserを使用したエディターでの改行について
□投稿者/ 魔界の仮面弁士 (77回)-(2014/08/11(Mon) 21:41:14)
No73014 (魔界の仮面弁士 さん) に返信
>>改行には<p>タグでなく<br/>になるようにしたいのですが、
>>どのようにすればいいでしょうか?
> Enter は段落の区切りで、
> Shift + Enter が物理改行です。

こういった手法もあるようです。
http://q.hatena.ne.jp/1159840119



上記を WebBrowser に置き換えてみたもの。

Public Class Form1

    Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
        TextBox1.Text = WebBrowser1.Document.InvokeScript("fnHtml")
    End Sub

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
        Dim html = <html>
                       <head>
                           <script>
          var doc=null;
          function fnInit(){
            doc=frames[0].document;
            doc.designMode='on';
            setTimeout(fnInsertBR,0);
          }
          function fnInsertBR(){
            doc.documentElement.onkeydown=function(){
              var e=window.frames[0].event,k=e.keyCode;
              if(k==13){
                var t='the_dummy_tag';
                var b=doc.createElement('br');
                doc.execCommand('InsertMarquee',false,t);
                var tag=doc.getElementById(t);
                tag.parentNode.replaceChild(b,tag);
                return false;
              }
            };
          }
          function fnHtml(){return doc.documentElement.innerHTML;}
        </script>
                       </head>
                       <body onload='fnInit()' style='margin:0;padding:0;overflow:hidden;'>
                           <iframe style='width:100%;height:100%;margin:0;padding:0;'></iframe>
                       </body>
                   </html>
        WebBrowser1.DocumentText = html.ToString()
    End Sub
End Class

引用返信 編集キー/
■73025 / inTopicNo.4)  Re[3]: WebBrowserを使用したエディターでの改行について
□投稿者/ タッチ (2回)-(2014/08/12(Tue) 08:31:34)
No73019 (魔界の仮面弁士 さん) に返信
> ■No73014 (魔界の仮面弁士 さん) に返信
> >>改行には<p>タグでなく<br/>になるようにしたいのですが、
> >>どのようにすればいいでしょうか?
>>Enter は段落の区切りで、
>>Shift + Enter が物理改行です。

魔界の仮面弁士様、ご回答ありがとうございました。
なるほど、Shift + Enterで<br>が挿入されることを確認しました。
確かにWordと同じですね。
また、段落(<p>タグ)の行間も、スタイルシートで
margin-topとmargin-bottomを適当に指定してあげることで調整できました。


> こういった手法もあるようです。
> http://q.hatena.ne.jp/1159840119

ありがとうございます。
これも試してみたいと思いますが、
作成しようとする簡易エディタでは段落と物理改行を意識した方が
良さそうな気がしましたので、とりあえず、本件は解決とさせて頂きます。

本当にありがとうございました。m(_ _)m

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -