Inseriamo la mia classetta "Griglia" in un progetto di classi (non ricordo come si chiama).
Copio il codice negli appunti, chiudo il progetto attuale (in cui la classe Griglia è in un modulo di classe) e apro un progetto di classi (così mi ricordo come si chiama quel tipo di progetto).
Ecco: si chiama Libreria di classi
Bene.
Ho incollato il codice della mia classe sull'IDE:
Public Class Griglia(Of T As {New, Control}) Sub New(ByRef myForm As Form, ByVal numCaselle As Integer, ByVal rowLength As Integer) For n As Integer = 0 To (numCaselle - 1) Dim casella As T = New T casella.Left = casella.Width * (n Mod rowLength) casella.Top = casella.Height * (n \ rowLength) myForm.Controls.Add(casella) Next End Sub End Classe ottengo una serie di erroracci:
A quanto pare, la mia libreria di classi non sa cosa sia un Form con tutti gli annessi e connessi.
Devo porre il riferimento alla classe Form.
In quale namespace è compresa questa classe?
Accertato che la classe è compresa nella libreria (dll) System.Windows.Forms, vado alla finestra Proprietà del progetto, alla scheda Riferimenti, e clicco su "Aggiungi":
Ecco: ho aggiunto il riferimento alla libreria System.Windows.Forms ma dopo questa operazione la finestra del codice continuava a segnalarmi che i Forms erano dei perfetti sconosciuti, quindi nella finestra sotto (spazi dei nomi importati), ho barrato la checkbox relativa al namespace System.Windows.Forms, e finalmente sono sparite le segnalazioni di errore.
Forse anzichè barrare la casella relativa al namespace posso importare il namespace direttamente da codice.
Proviamo.
Deseleziono la checkbox.
Ottengo di nuovo gli errori dovuti al fatto che il mio codice non conosce i Forms.
Aggiungo questo codice (la parte evidenziata in rosso):
Imports System.Windows.Forms
Public Class Griglia(Of T As {New, Control})
Sub New(ByRef myForm As Form, ByVal numCaselle As Integer, ByVal rowLength As Integer)
For n As Integer = 0 To (numCaselle - 1)
Dim casella As T = New T
casella.Left = casella.Width * (n Mod rowLength)
casella.Top = casella.Height * (n \ rowLength)
myForm.Controls.Add(casella)
Next
End Sub
End Class
e, come prevedevo, le segnalazioni di errore spariscono: il codice sa di nuovo cos'è un Form!
Nessun commento:
Posta un commento