Oggetto Menu per gli utenti di Visual Basic 6.0

Aggiornamento: novembre 2007

In Visual Basic 2008, l'oggetto Menu di Visual Basic 6.0 viene sostituito dal controllo MenuStrip o dal controllo ContextMenuStrip. I nomi di alcuni metodi, eventi, proprietà e costanti sono differenti e in certi casi esistono anche delle differenze di comportamento.

In Visual Basic 6.0, gli oggetti Menu sono creati utilizzando l'Editor menu. Gli oggetti Menu sono associati al form per cui sono creati, ma è possibile modificarli in fase di esecuzione o visualizzarli come menu di scelta rapida. I menu creati mediante l'oggetto Menu non supportano a livello nativo l'ombreggiatura, le icone o i controlli incorporati; possono essere creati soltanto menu senza effetti simili a quelli di Windows 98.

In Visual Basic 2008, l'oggetto Menu è sostituito dai componenti MenuStrip e ContextMenuStrip. È possibile creare menu utilizzando la funzionalità di modifica sul posto in fase di progettazione oppure attraverso il codice. I componenti MenuStrip e ContextMenuStrip consentono di creare menu di stile analoghi alle barre degli strumenti delle versioni più recenti di Office, consentendo di implementare zone di ombreggiatura, icone e controlli incorporati, come ad esempio gli elenchi a discesa. Per ulteriori informazioni, vedere Cenni preliminari sul controllo MenuStrip (Windows Form).

Visualizzazione dei menu di scelta rapida

In Visual Basic 6.0 è possibile visualizzare un menu di scelta rapida chiamando il metodo PopupMenu e passandovi un qualsiasi oggetto Menu di primo livello. Ad esempio, se si dispone di un menu Modifica denominato mnuEdit con i sottomenu Taglia, Copia e Incolla, è possibile visualizzare un menu di scelta rapida provvisto dei comandi Taglia, Copia e Incolla chiamando il metodo PopupMenu mnuEdit.

In Visual Basic 2008 i menu di scelta rapida sono visualizzati utilizzando il componente specifico ContextMenuStrip. Non esiste alcun equivalente del metodo PopupMenu; tuttavia, è comunque possibile condividere i comandi fra un componente MenuStrip e un componente ContextMenuStrip creando il componente ContextMenuStrip in fase di progettazione e condividendo i gestori eventi.

Nell'esempio riportato di seguito vengono illustrate le differenze nelle tecniche di codifica tra Visual Basic 6.0 e Visual Basic 2008.

Modifiche del codice per la visualizzazione di menu di scelta rapida

Il codice di seguito riportato mostra il modo in cui visualizzare in un menu di scelta rapida i comandi Taglia, Copia e Incolla di un menu Modifica preesistente.

' Visual Basic 6.0
Private Sub mnuCut_Click()
    MsgBox "You selected Cut"
End Sub
Private Sub mnuCopy_Click()
    MsgBox "You selected Copy"
End Sub

Private Sub mnuPaste_Click()
    MsgBox "You selected Paste"
End Sub

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Button = vbRightButton Then
        PopupMenu mnuEdit
    End If
End Sub
' Visual Basic
' You must first add a ContextMenuStrip component to the form at design 
' time and add Cut, Copy, and Paste menu items named 
' CutContextMenuItem, CopyContextMenuItem, and PasteContextMenuItem.

Private Sub CutToolStripMenuItem_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles CutToolStripMenuItem.Click
    MsgBox("Cut")
End Sub

Private Sub CopyToolStripMenuItem_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles CopyToolStripMenuItem.Click
    MsgBox("Copy")
End Sub

Private Sub PasteToolStripMenuItem_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles PasteToolStripMenuItem.Click
    MsgBox("Paste")
End Sub


Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As _
System.Windows.Forms.MouseEventArgs) Handles Me.MouseDown

  If e.Button = Windows.Forms.MouseButtons.Right Then
    Me.ContextMenuStrip = ContextMenuStrip1

    AddHandler CutContextMenuItem.Click, _
      AddressOf CutToolStripMenuItem_Click

    AddHandler CopyContextMenuItem.Click, _
      AddressOf CopyToolStripMenuItem_Click

    AddHandler PasteContextMenuItem.Click, _
      AddressOf PasteToolStripMenuItem_Click
  End If
End Sub


Nelle tabelle riportate di seguito sono elencati i metodi e le proprietà di Visual Basic 6.0, insieme ai rispettivi equivalenti di Visual Basic 2008. Nell'elenco non sono inclusi i metodi e le proprietà che hanno lo stesso nome e lo stesso comportamento. Se non diversamente specificato, tutte le enumerazioni Visual Basic 2008 sono mappate allo spazio dei nomi System.Windows.Forms.

In questa tabella vengono forniti collegamenti ad argomenti in cui sono illustrate le differenze di comportamento. Quando non è presente un equivalente diretto in Visual Basic 2008, vengono forniti collegamenti ad argomenti in cui sono illustrate le alternative disponibili.

Proprietà

Visual Basic 6.0

Visual Basic 2008Equivalente

Caption

Text (MenuStripItem)

HelpContextID

Nuova implementazione. Per ulteriori informazioni, vedere Supporto della Guida per gli utenti di Visual Basic 6.0.

Index

Nuova implementazione. Vedere la proprietà Index della classe ToolStripItemCollection.

NegotiatePosition

Nessun equivalente. Questa proprietà veniva utilizzata unicamente per il collegamento e l'incorporamento di oggetti OLE, funzionalità non più supportate.

Parent

Metodo FindForm

WindowList

MdiWindowListItem

Metodi

Visual Basic 6.0

Visual Basic 2008Equivalente

PopupMenu

Nuova implementazione. Utilizzare un componente ContextMenuStrip.

Quando un'applicazione Visual Basic 6.0 viene aggiornata a Visual Basic 2008, non viene aggiornata alcuna delle chiamate al metodo PopupMenu; pertanto, occorre creare dei menu di scelta rapida per sostituirle.

Aggiunte alla community

Mostra: