Ivan Gentile

Office and .NET blog
posts - 24, comments - 0, trackbacks - 2

Caricare un'immagine in una RichTextBox in VB.Net

Forse qualcuno potrebbe aver bisogno di inserire un’immagine in un documento rtf o doc da generare in fase di esecuzione.

Il controllo da utilizzare è (Ovviamente!!) un RichTextBox.

Questo controllo altro non è che un collegamento a WordPad e quindi (non riuscendoci nemmeno quest’ultimo!!!)  non può facilmente contenere immagini.

Il trucco sta nel fargli copiare un immagine dopo averla copiata nella Clipboard.

Per fare questo sfruttiamo una libreria di windows la user32.

Per prima cosa creiamo un form con una RichTextBox che chiamero rtb1 e con un Button che chiameremo Button1.

 

Passiamo poi al codice.

Imports System

Imports System.Windows

Imports System.Windows.Forms

Imports System.Runtime.InteropServices

Public Class Form1

    Declare Function SendMessage Lib "user32" Alias "SendMessageA" _

       (ByVal hwnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, _

       ByVal lParam As Object) As Integer

         Const WM As Short = &H400S

         Const WM_COPY As Integer = WM + 30

         Const WM_PASTE = &H302

         Dim Image1 as Image

             Private Sub Button1_Click(ByVal sender As System.Object, _

                        ByVal e As System.EventArgs) Handles Button1.Click

                               rtb1.Text = ""

                              Clipboard.Clear()

                              Image1=Image.FromFile(“C:\SBSoft.bmp”)

                              SendMessage(Image1, WM_COPY, 0, 0)

                              SendMessage(rtb1.Handle, WM_PASTE, 0, 0)

             End Sub

End Class

Mandandolo in esecuzione dovreste ottenere una cosa del genere:

Ciao

Ivan

?>

posted on sabato 21 gennaio 2006 10.13