Print RichTextBox

Mansi Shah

Newcomer
Joined
Dec 5, 2008
Messages
2
Hi,

I have one panel, on that there is one picturebox.

Here I m providing my sample code, in this it is not printing the transparent rich textboxes. Form has 1 printpreviewDialog and 1 printpreviewdocument.
Visual Basic:
Public Class Print

    Private Sub Print_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Dim img As Image
        img = Image.FromFile("c:\sunset.jpg")
        Dim bm As New Bitmap(img, Panel1.Width, Panel1.Height + 50)
        PictureBox1.Image = bm
        PictureBox1.Height = PictureBox1.Image.Height
        PictureBox1.Width = PictureBox1.Image.Width
        PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
        If PictureBox1.Image.Height > Panel1.Height Then
            Panel1.AutoScroll = True
        End If

        Dim rtb As New TransparentRichTextBox
        rtb.Text = "Rich Text Box"
        rtb.Font = New Font("Verdana", 15, FontStyle.Bold)
        rtb.Size = New Size(500, 100)
        rtb.Location = New Point(100, 100)
        rtb.Visible = True
        PictureBox1.Controls.Add(rtb)
        PrintDocument1.DefaultPageSettings.Landscape = True

        Dim btn As New Button
        btn.Text = "New Button"
        PictureBox1.Controls.Add(btn)
        btn.Location = New Point(50, 50)

    
        PrintPreviewDialog1.Document = PrintDocument1
        PrintPreviewDialog1.ShowDialog()
  
    End Sub

    Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage

        Dim Bmp As New Bitmap(PictureBox1.Width, PictureBox1.Height)

        Dim rect As Rectangle = New Rectangle(0, 0, PictureBox1.Width, PictureBox1.Height)

        PictureBox1.DrawToBitmap(Bmp, New Rectangle(0, 0, Bmp.Width, Bmp.Height))
        Dim VScrollBarWidth As Integer = 0
        Dim HScrollBarHeight As Integer = 0
        Dim TaskBarHeight As Integer = 0
        e.Graphics.DrawImage(Bmp, 0, 0, Bmp.Width - VScrollBarWidth, Bmp.Height - HScrollBarHeight - TaskBarHeight)
    End Sub

  
End Class

Class TransparentRichTextBox
    Inherits RichTextBox
    Public Sub New()
        MyBase.ScrollBars = RichTextBoxScrollBars.None
        MyBase.BorderStyle = Windows.Forms.BorderStyle.None
    End Sub

    Protected Overloads Overrides ReadOnly Property CreateParams() As CreateParams
        Get
            Dim cp As CreateParams = MyBase.CreateParams
            cp.ExStyle = cp.ExStyle Or &H20
            Return cp
        End Get
    End Property
    Protected Overloads Overrides Sub OnPaintBackground(ByVal e As PaintEventArgs)
    End Sub

End Class

It is showing all the controls in picturebox, but not showing rich text box. why?
 
Last edited by a moderator:
Back
Top