VBレスキュー(花ちゃん)
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ各掲示板

メニューへ戻ります。 RichTextBox 関係のメニュー
1.RichTextBox コントロールに関するワンポイントテクニック集
2.RichTextBox コントロールの内容を印刷する方法
3.選択範囲の文字列を縦方向の指定位置に表示する(上揃え/下揃え)
4.RichTextBox に画像を縦横比を保持したまま指定サイズに伸縮して表示 
5.RichTextBox で左右のマージンを設定する
6.
7.
8. 
9. 
10. 
11.
12.
 . 
20.その他、当サイト内に掲載の RichTextBox に関するサンプル 


4.RichTextBox に画像を縦横比を保持したまま指定サイズに伸縮して表示(22_Rtf_04) (旧、SampleNo.000)
1.RichTextBox に画像を縦横比を保持したまま指定サイズに伸縮して表示
2.
3.
4.
5.
6.

 下記プログラムコードに関する補足・注意事項 
動作確認:Windows 8.1 (Windows 7) / VB2013 (VB2010) / Framework 4.5.1 / 対象の CPU:x86
Option :[Compare Text] [Explicit On] [Infer On] [Strict On]
Imports :追加なし
参照設定:
追加なし
その他 :
    :
このサンプル等の内容を無断で転載、掲載、配布する事はお断りします。(私の修正・改訂・削除等が及ばなくなるので)
必要ならリンクをはるようにして下さい。(引用の場合は引用元のリンクを明記して下さい)
このページのトップへ移動します。 1.RichTextBox に画像を縦横比を保持したまま指定サイズに伸縮して表示

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
'RichTextBox に画像を縦横比を保持したまま指定サイズに伸縮して指定位置に表示
    '(RichTextBox に画像を表示する簡単な方法が無いようなので、クリップボード経由で貼り付けております。)

    RichTextBox1.SelectionStart = 367   '日野菜 のところに画像を挿入します。

    Using fs As System.IO.FileStream = New System.IO.FileStream("..\..\..\data_pic\hinona.png", _
                                                    System.IO.FileMode.Open, System.IO.FileAccess.Read)
        Dim bmp As Bitmap = New Bitmap(System.Drawing.Image.FromStream(fs))
        '縦横比を保持したまま指定サイズに伸縮設定
        Dim mf As Single = 1 '拡大率
        If bmp.Width >= bmp.Height Then
            mf = CSng(NumericUpDown1.Value / bmp.Width)
        Else
            mf = CSng(NumericUpDown1.Value / bmp.Height)
        End If
        '50 ピクセルより画像が大きい場合は、50 ピクセルまで縮小、画像が小さい場合は拡大
        bmp = New Bitmap(bmp, CInt(bmp.Width * mf), CInt(bmp.Height * mf))
        '一旦クリップボードを Clear
        Clipboard.Clear()
        'クリップボードに画像をコピー
        Clipboard.SetDataObject(bmp, True)
        bmp.Dispose()
    End Using

    Dim iData As IDataObject = Clipboard.GetDataObject()
    'クリップボードにBMPファイルがあれば RichTextBox に貼り付け
    If iData.GetDataPresent(DataFormats.Bitmap) Then
        RichTextBox1.Paste()
    End If
End Sub

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
'画像の方はオフセット表示できないので、文字列の方を移動しますので、画像表示行全体を選択しておいて下さい。
    RichTextBox1.SelectionStart = 360   '画像を表示した行全体を選択
    RichTextBox1.SelectionLength = 45

    RichTextBox1.SelectionCharOffset = CInt(NumericUpDown2.Value)
    RichTextBox1.SelectionLength = 0

End Sub

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    RichTextBox1.LoadFile("..\..\..\data\test.rtf", RichTextBoxStreamType.RichText)
End Sub

 図1.上記実行結果
 vb2013richtextbox04_1

RichTextBox に画像を表示する簡単な方法が無いようなので、クリップボード経由で貼り付けております。
ついでに画像サイズを指定できるようにしておきましたので、実装時には、テキストボックス等からサイズを指定できるようにでもして下さい。
又、上記画像は、3.選択範囲の文字列を縦方向の指定位置に表示する(上揃え/下揃え)を使って画像を表示した行のテキストを画像の中央に配置されるように設定しております。

このページのトップへ移動します。 2.


このページのトップへ移動します。 3.


このページのトップへ移動します。 4.


このページのトップへ移動します。 5. 



このページのトップへ移動します。 6.


このページのトップへ移動します。 検索キーワード及びサンプルコードの別名(機能名)





このページのトップへ移動します。