|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jul 2006
Messaggi: 484
|
Array di controlli in VB.NET
Vorrei fare una domanda su Visual Basic . NET insomma programmando in Visual Studio.
Premetto che ho programamto fino ad oggi solo su Pascal e VB6 e che utilizzo vb.NET tipo da qualche ora per imparare. La mia domanda è questa come faccio a creare degli array di controlli?? in vb.net mi sembra di aver capito che non si può fare, che non esiste in vb.net, non saprei comunque l'array di controlli era davvero utile creavo una cosa e poi ne creavo delle copie, con dei cicli potevo fare comdamente confronti ecc.... cortesemente non mi linkate pagine in inglese, lo mastico ma non moltissimo. grazie a tutti coloro che mi aiuteranno ![]() P.S. mi va bene anche qualsiasi cosa che possa essere simile alla creazione di un array di controlli. Ultima modifica di Rossi88 : 02-09-2006 alle 19:34. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jul 2006
Messaggi: 484
|
vedendo dal sito microsoft MSDN anche se da una pagina in inglese sono riuscito a creare questo array di controlli creando una classe che ho leggermente modificato per adattarlo alle mie esigenze (posto il codice):
Public Class CreazioneLabel Inherits System.Collections.CollectionBase Private ReadOnly HostForm As System.Windows.Forms.Form Public Function AddNewLabel(Optional ByVal DSopra As Integer = 25, Optional ByVal DSinistra As Integer = 0) As System.Windows.Forms.Label ' Create a new instance of the Button class. Dim aLabel As New System.Windows.Forms.Label() ' Add the button to the collection's internal list. Me.List.Add(aLabel) ' Add the button to the controls collection of the form ' referenced by the HostForm field. HostForm.Controls.Add(aLabel) ' Set intial properties for the button object. aLabel.Top = Count * 25 aLabel.Left = DSinistra aLabel.Tag = Me.Count aLabel.Text = "LabelMichele " & Me.Count.ToString aLabel.Visible = True AddHandler aLabel.Click, AddressOf ClickHandler Return aLabel End Function Public Sub New(ByVal host As System.Windows.Forms.Form) HostForm = host Me.AddNewLabel() End Sub Default Public ReadOnly Property Item(ByVal Index As Integer) As _ System.Windows.Forms.Label Get Return CType(Me.List.Item(Index), System.Windows.Forms.Label) End Get End Property Public Sub Remove() ' Check to be sure there is a button to remove. If Me.Count > 0 Then ' Remove the last button added to the array from the host form ' controls collection. Note the use of the default property in ' accessing the array. HostForm.Controls.Remove(Me(Me.Count - 1)) Me.List.RemoveAt(Me.Count - 1) End If End Sub Public Sub ClickHandler(ByVal sender As Object, ByVal e As _ System.EventArgs) MessageBox.Show("you have clicked Label " & CType(CType(sender, _ System.Windows.Forms.Label).Tag, String)) End Sub End Class vorrei chiedere tuttavia dei chiarimenti tipo questa riga a che serve: Private ReadOnly HostForm As System.Windows.Forms.Form cosa fa esattamente. e un'ultima cosa il me esattamente per cosa sta? per alabel forse. |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jul 2006
Messaggi: 484
|
Provo a chiedere qualche altra cosa forse sarò più fortunato:
è possibile eliminare da una procedura definita in una classe (la cui esucuzione è peraltro collegata ad un evento del controllo facente parte dell'array) elimimare un elemento che fa parte di una groupbox. so che il comando è: groupbox.controls.remove(elemento che voglio eliminare) ma da una classe mi pare che non funzioni per niente o almeno così non funziona perchè mi da come errore oggetto non dichiarato. tra l'altro la stessa groupbox la considera un elemento non dichiarato(come peraltro è logico che sia, essendo quegli elementi facenti parte di un'altra classe almeno penso). spero di essere stato chiaro nell'esporre questo mio problmea se non lo sono stato chiederte pure anche per qualsiasi altro dubbio sarò ben lieto di rispondere.
Ultima modifica di Rossi88 : 04-09-2006 alle 20:32. |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Jul 2006
Messaggi: 484
|
Che bello mi faccio le domande e mi do una risposta da solo
Vabbè meglio che riesco a trovare le risposte da solo: la soluzione è più semplcie di quantyo pensavo bastava richiamare dalla procedura nella classe per creare l'array una procedura pubblica nella classe form1, o almeno penso sia questa la soluzione migliore o comunque quella più semplice. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 12:04.




















