It's a little bit difficult to do this.
To show you how it could be done I created a new customized PrintPreviewDialog-Class (which inherits from the original PrintPreviewDialog) :
Public Class RMPrintPreviewDialog
Inherits PrintPreviewDialog
Property ShowPrintButton As Boolean
Get
Return myShowPrintButton
End Get
Set(value As Boolean)
myShowPrintButton = value
Me.Invalidate()
End Set
End Property
Private myShowPrintButton As Boolean = False
Protected Overrides Sub CreateHandle()
MyBase.CreateHandle()
For Each c As Control In Me.Controls
If c.GetType Is GetType(ToolStrip) Then
ts = c
For Each m As Object In ts.Items
If LCase(m.name) = "printtoolstripbutton" Then
printButton = m
End If
Next
End If
Next
End Sub
Private ts As ToolStrip
Private printButton As ToolStripButton
Protected Overrides Sub OnActivated(e As System.EventArgs)
printButton.Visible = myShowPrintButton
MyBase.OnActivated(e)
End Sub
End Class
This Class has a new Property which allows you to switch the Button to "unvisible".
To do this you have to iterate (like it's shown inside the code) through the Controls from the Dialog to find first the Toolstrip and after this you have to iterate through the ToolStrip-Items to find the PrintButton. Now, when you have the Reference, you can switch it on or off ...