vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: Verschiedenes / Sonstiges   |   VB-Versionen: VB2008 - VB201513.02.17
2 Funktionen zur Manipulation des ReportViewer-Controls

Es werden 2 Funktion gezeigt, die einerseits bewirken, dass die Untermenüpunkte von 'Export' mit Icons versehen werden und andererseits, dass ein solcher Untermenüpunkt ausgeblendet werden kann.

Autor:   Dietrich HerrmannBewertung:  Views:  5.656 
ohne HomepageSystem:  Win7, Win8, Win10, Win11kein Beispielprojekt 

Im Folgenden übermittle ich die in der Kurzbeschreibung erwähnten Funktionen und ihre Anwendung.

1. Untermenüpunkte von 'Export' mit Grafiken versehen (besteht allerdings aus 3 Funktionen, die als Hilfsfunktionen funktionieren):

''' <summary>
'''    Hinzufügen von Icons zu den DropDown-Items Export
''' </summary>
''' <param name="rpv">das ReportViewerControl-</param>
''' <param name="ItemName"></param>
Public Sub AddImgRVToolBar(rpv As ReportViewer, ItemName As String)
  Dim ts As ToolStrip = FindToolStrip(Of ToolStrip)(rpv)
  If ts IsNot Nothing Then
    Dim exportButton As ToolStripDropDownButton =
      TryCast(ts.Items(ItemName), ToolStripDropDownButton)
    If exportButton IsNot Nothing Then
      AddHandler exportButton.DropDownOpened, AddressOf OnExportOpened
    End If
  End If
End Sub
' die Grafiken bei den Untermenüpunkten einsetzen
Public Sub OnExportOpened(sender As Object, e As EventArgs)
  If TypeOf sender Is ToolStripDropDownButton Then
    Dim button As ToolStripDropDownButton = DirectCast(sender, ToolStripDropDownButton)
    For Each item As ToolStripItem In button.DropDownItems
      Dim extension As RenderingExtension = DirectCast(item.Tag, RenderingExtension)
      If extension IsNot Nothing Then
        Select Case extension.LocalizedName
          Case "Excel"
            item.Image = My.Resources.excel
          Case "PDF"
            item.Image = My.Resources.pdf
          Case "Word"
            item.Image = My.Resources.word
        End Select
      End If
    Next
  End If
End Sub
' den Toolstrip des ReportViewer-Controls ermitteln
Private Function FindToolStrip(Of T As Control)(ByVal control As Control) As T
  If control Is Nothing Then
    Return Nothing
  ElseIf TypeOf control Is T Then
    Return DirectCast(control, T)
  Else
    Dim result As T = Nothing
    For Each embedded As Control In control.Controls
      If result Is Nothing Then result = FindToolStrip(Of T)(embedded)
    Next
    Return result
  End If
End Function

In meinem Konstrukt sieht man, dass die Grafiken im Ressource-Ordner des VB-Projekts liegen sollten.

Anwendung:

Dim rpv As New ReportViewer
...

Nachdem rpv initialisiert wurde: AddImgRVToolBar(rpV, "export")

2. 'Export'-Untermenüpunkt ausblenden:

''' <summary>
'''    Unsichtbarmachen eines DropDown-Items von Export
''' </summary>
''' <param name="rpv">das ReportViewer-Control</param>
''' <param name="strFormatName">der Name des betreffenden DropDown-Items</param>
Public Sub DisableUnwantedExportFormat(rpv As ReportViewer, strFormatName As String)
  Dim info As FieldInfo
  For Each extension As RenderingExtension In rpv.LocalReport.ListRenderingExtensions()
    If extension.Name = strFormatName Then
      info = extension.[GetType]().GetField("m_isVisible", BindingFlags.Instance _
                                Or BindingFlags.NonPublic)
      info.SetValue(extension, False)
    End If
  Next
End Sub

Anwendung:
Nachdem rpv initialisiert wurde bspw.: DisableUnwantedExportFormat(rpV, "PDF")



Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.