Alte Steuerelemente durch neu Steuerelemente von VS 2005 ersetzen

forsterm

Erfahrenes Mitglied
Alte Controls (VS 2003) durch neu Controls von VS 2005 ersetzen

Hallo,
wie muss ich folgenden Code ändern, damit er mit den neuen Controls (ContextMenuStrip bzw. ToolStrip) von VS 2005 funktioniert?
Code:
Public Class Form1
Inherits System.Windows.Forms.Form
#Region " Vom Windows Form Designer generierter Code "
Public Sub New()
MyBase.New()
' Dieser Aufruf ist für den Windows Form-Designer erforderlich.
InitializeComponent()
' Initialisierungen nach dem Aufruf InitializeComponent() hinzufügen
End Sub
' Die Form überschreibt den Löschvorgang der Basisklasse, um Komponenten zu bereinigen.
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub
' Für Windows Form-Designer erforderlich
Private components As System.ComponentModel.IContainer
'HINWEIS: Die folgende Prozedur ist für den Windows Form-Designer erforderlich
'Sie kann mit dem Windows Form-Designer modifiziert werden.
'Verwenden Sie nicht den Code-Editor zur Bearbeitung.
Friend WithEvents ContextMenu1 As System.Windows.Forms.ContextMenu
Friend WithEvents ToolBar1 As System.Windows.Forms.ToolBar
Friend WithEvents ToolBarButton1 As System.Windows.Forms.ToolBarButton
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
Me.ContextMenu1 = New System.Windows.Forms.ContextMenu
Me.ToolBar1 = New System.Windows.Forms.ToolBar
Me.ToolBarButton1 = New System.Windows.Forms.ToolBarButton
Me.SuspendLayout()
'
'ToolBar1
'
Me.ToolBar1.Buttons.AddRange(New System.Windows.Forms.ToolBarButton() {Me.ToolBarButton1})
Me.ToolBar1.DropDownArrows = True
Me.ToolBar1.Location = New System.Drawing.Point(0, 0)
Me.ToolBar1.Name = "ToolBar1"
Me.ToolBar1.ShowToolTips = True
Me.ToolBar1.Size = New System.Drawing.Size(292, 46)
Me.ToolBar1.TabIndex = 0
'
'ToolBarButton1
'
Me.ToolBarButton1.DropDownMenu = Me.ContextMenu1
Me.ToolBarButton1.Name = "ToolBarButton1"
Me.ToolBarButton1.Style = System.Windows.Forms.ToolBarButtonStyle.DropDownButton
Me.ToolBarButton1.Text = "A"
'
'Form1
'
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
Me.ClientSize = New System.Drawing.Size(292, 266)
Me.Controls.Add(Me.ToolBar1)
Me.Name = "Form1"
Me.Text = "Form1"
Me.ResumeLayout(False)
Me.PerformLayout()
End Sub
#End Region
Private Sub ContextMenuClick(ByVal sender As Object, ByVal e As EventArgs)
MessageBox.Show(CType(sender, MenuItem).Text)
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim i As Integer
For i = 0 To 5
Me.ContextMenu1.MenuItems.Add("Eintrag" & i)
Next
For Each mi As MenuItem In ContextMenu1.MenuItems
AddHandler mi.Click, AddressOf ContextMenuClick
Next
End Sub
End Class

mfg
forsterm
 
Zuletzt bearbeitet:
Hast du das Projekt nach .NET 2.0 konvertiert? Das wird durch das Visual Studio 2005 vorgenommen. Weitere Änderungen durch dich sollten nicht notwendig sein.

Was hast du gemacht und was funktioniert nicht?
 
Hallo,
ja ich habe es nach VS 2005 Konvertiert. Soweit hat es auch noch funktioniert.
Nur würde ich in einem anderen Projekt lieber die "neu" Toolbar und das "neu"
ContextMenu von VS 2005 verwenden. Habe auch schon versucht es anzupassen:
Code:
Private Sub ContextMenuClick(ByVal sender As Object, ByVal e As EventArgs)
	MessageBox.Show(CType(sender, MenuItem).Text)
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
	For Each mi As MenuItem In ContextMenuStrip1.Items
		AddHandler mi.Click, AddressOf ContextMenuClick
	Next
End Sub

Jedoch bekomme ich eine Fehlermeldung.
VS2005 hat gesagt.:
Das Objekt des Typs System.Windows.Forms.ToolStripMenuItem kann nicht in Typ System.Windows.Forms.MenuItem umgewandelt werden.

Eventell gibt es ja auch eine viel einfachere Möglichkeit, deshalb beschreibe ich mein Problem nochmal:
Also ich möchte, dass wenn ich auf ein beliebiges Item eines ContextMenuStrip klicke, dass
dann eine MessageBox mit dem Text des Items ausgegeben wird.

mfg
forsterm

EDIT:
Habe mein Problem soeben selber gelöst.
Code:
    Private Sub ContextMenuStrip1_ItemClicked(ByVal sender As Object, ByVal e As System.Windows.Forms.ToolStripItemClickedEventArgs) Handles ContextMenuStrip1.ItemClicked
        MessageBox.Show(e.ClickedItem.Text)
    End Sub
 
Zuletzt bearbeitet:
Zurück