Procedura: passare oggetti a routine
Aggiornamento: novembre 2007
Visual Basic consente di passare degli oggetti come argomenti alle routine nello stesso modo in cui si passano altri tipi di argomenti. Nelle procedure riportate di seguito ne verranno illustrate le modalità.
Per passare una nuova istanza di un form a una routine
Aprire un progetto, creare un nuovo form denominato Form1 e aggiungervi un pulsante di comando denominato Button1.
Copiare il seguente codice nel form:
Private Sub Button1_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles Button1.Click Dim newForm As New Form1 newForm.Show() CenterForm(newForm) End Sub Sub CenterForm(ByVal TheForm As Form) ' Centers the form on the screen. Dim RecForm As Rectangle = Screen.GetBounds(TheForm) TheForm.Left = CInt((RecForm.Width - TheForm.Width) / 2) TheForm.Top = CInt((RecForm.Height - TheForm.Height) / 2) End Sub
È inoltre possibile passare un oggetto come argomento per riferimento, quindi, all'interno della routine, assegnare un nuovo oggetto all'argomento.
Per passare un oggetto per riferimento a una routine presente in un altro form
Aprire un progetto e creare un form denominato Form1.
Aggiungere un secondo form denominato Form2.
Inserire un controllo casella immagine in ciascun form.
Denominare PictureBox1 il controllo PictureBox presente in Form1.
Denominare PictureBox2 il controllo PictureBox presente in Form2.
Assegnare un'immagine a PictureBox2 facendo clic sulla proprietà Image nella finestra Proprietà. Una qualsiasi immagine di piccole dimensioni sarà appropriata. Nella directory Windows sono disponibili file BMP e JPG.
Aggiungere il seguente codice a Form2:
Public Sub GetPicture(ByVal x As PictureBox) Dim objX As PictureBox ' Assign the passed-in picture box to an object variable. objX = x ' Assign the value of the Picture property to the Form1 picture box. objX.Image = PictureBox2.Image End Sub
Aggiungere il codice seguente all'evento Form1_Click su Form1:
Protected Sub Form1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Dim newForm2 As New Form2 newForm2.GetPicture(PictureBox1) End Sub
Eseguire l'applicazione e fare clic su Form1. L'immagine di Form2 verrà visualizzata nella casella immagine di Form1.
La routine dell'evento Form1_Click chiama la routine GetPicture di Form2 e vi passa il controllo PictureBox vuoto. La routine GetPicture di Form2 assegna la proprietà Image della casella immagine di Form2 alla casella immagine vuota di Form1 e l'immagine di Form2 viene visualizzata in Form1.