Rubrik: Controls | VB-Versionen: VB2005, VB2008, VB2010 | 21.10.13 |
ReportViewer-Control: neuen Button zum Toolstrip hinzufügen Der Tipp zeigt, wie man dem Toolstrip im ReportViewer-Control einen zusätzlichen Button zufügen kann. | ||
Autor: Dietrich Herrmann | Bewertung: | Views: 8.262 |
ohne Homepage | System: Win7, Win8, Win10, Win11 | kein Beispielprojekt |
Ich setze voraus, dass das ReportViewer-Control und seine Funktion bekannt sind.
Um die im Folgenden gezeigte Funktion anwenden zu können, muss folgende Imports-Anweisung eingefügt werden:
Imports Microsoft.Reporting.WinForms
Man vereinbart:
Private WithEvents bt As New ToolStripButton
Schreibt bspw. im Load-Event der Form:
With bt .Name = "newButton" .Text = "New Button" .BackColor = Color.Green .ForeColor = Color.Yellow ' .Alignment = ToolStripItemAlignment.Right .Margin = New Padding(10, 2, 10, 2) End With
und gleich danach den Funktionsaufruf:
AddButtonToReportViewer(ReprtViewer1, bt, 8)
Dann wird die folgende Funktion zum Einfügen benutzt:
''' <summary> ''' Zum Toolstrip des ReportViewer-Controls einen Button hinzufügen ''' </summary> ''' <param name="repCtrl">der ReportViewer</param> ''' <param name="newButton">der neue Button</param> ''' <param name="idx">der Index für die Stelle, an der der Button eingefügt werden soll</param> Public Sub AddButtonToReportViewer(repCtrl As ReportViewer, _ newButton As ToolStripButton, _ Optional idx As Short = Nothing) Dim ts() As Control = repCtrl.Controls.Find("ToolStrip1", True) If Not IsNothing(ts) Then Dim tsItem As ToolStrip = DirectCast(ts(0), ToolStrip) If IsNothing(idx) Then ' wenn kein Einfügeindex angegeben, Button nur hinzufügen tsItem.Items.Add(newButton) Else ' wenn Einfügeindex angegeben, wird Button an dieser Stelle eingefügt tsItem.Items.Insert(idx, newButton) End If End If End Sub