DevAdmin Blog

Blog di Ermanno Goletto (Microsoft MVP Directory Services - MCITP - MCTS - MCSA - MCP)
posts - 887, comments - 447, trackbacks - 13

My Links

News

Avatar

Curriculum Vitae

Visualizza il profilo di Ermanno Goletto su LinkedIn


Il contenuto di questo blog e di ciascun post viene fornito “così come é”, senza garanzie, e non conferisce alcun diritto. Questo blog riporta il mio personale pensiero che non riflette necessariamente il pensiero del mio datore di lavoro.

Logo Creative Commons Deed


Logo SysAdmin.it SysAdmin.it Staff


Logo TechNet Forum TechNet Italia @ForumTechNetIt Follow TechNet Forum on Twitter


Logo MVP


Ermanno Goletto Follow ermannog on Twitter

Article Categories

Archives

Post Categories

Blogs

Friends

Knowledge Base

MVP Sites

Resources

Dispose di componenti in form

Oggi avevo bisogno di usare in una form una DataTable e volevo che alla dispose della form venisse fatta anche la dispose della DataTable e tra me ho pensato potrei usare un DataSet che posso aggiungere come un componente e che verrà quindi aggiunto alla collezione components e alla Dispose della form verrà rilasciato visto che il codice generato per la dispose della form è il seguente:

        'Form overrides dispose to clean up the component list.
        Protected Overrides Sub Dispose(ByVal disposing As Boolean)
            If disposing AndAlso components IsNot Nothing Then
                components.Dispose()
            End If
            MyBase.Dispose(disposing)
        End Sub

Peccato che la quando viene fatta la new del DataSet non viene passato l'oggetto components in quanto non esiste un'overloads per la New del DataSet con un parametro System.ComponentModel.Container, tra l'altro questo vale per tutti i componenti che  ho provato ad aggingere.

Morale quando chiudiamo la form sui componenti non viene richiamata la Dispose.

Per risolvere io mi sono creato la mia DataTable e l'ho aggiunta alla collezione components:

            Me.DplDataTable = New System.Data.DataTable
            Me.components.Add(Me.DplDataTable)

Credo però che un'overloads con il parametro System.ComponentModel.Container sui componenti che possono essere aggiunti tramite designer non guasterebbe, tanto più che quando si aggiunge una classe componente al progetto queste sono le New che vengono create automaticamente nel file .Designer.vb:

    Public Sub New(ByVal Container As System.ComponentModel.IContainer)
        MyClass.New()

        'Required for Windows.Forms Class Composition Designer support
        Container.Add(Me)

    End Sub

    Public Sub New()
        MyBase.New()

        'This call is required by the Component Designer.
        InitializeComponent()

    End Sub

Print | posted on Friday, June 09, 2006 9:38 AM | Filed Under [ Code, Snippets & Scripts .NET ]

Feedback

No comments posted yet.

Post Comment

Title  
Name  
Email
Url
Comment   
Please add 6 and 5 and type the answer here:

Powered by:
Powered By Subtext Powered By ASP.NET