Alex's Weblog

Weblog di Ermanno Goletto (Codename Alex - A Learning EXperience)
posts - 438, comments - 4214, trackbacks - 294

My Links

News

Il blog è stato
trasferito al
 seguente link:


DevAdmin Blog

Add my blog to Live

Foto

Curriculum Vitae


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 MCTS

Logo MCSA

Logo MCP

Logo Microsoft Certified Business Management Solutions Professional

Microsoft Certified Business Management Solutions Specialist


Logo UGIdotNET UGIdotNET Contributor


Logo UGISS UGISS Contributor


Logo SysAdmin.it SysAdmin.it Staff


Article Categories

Archives

Post Categories

Blogs

Database

Development

Friends

IT

Knowledge Base

Links

MBS

MCP

MVP Sites

User Groups

Virtualization

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 venerdì 9 giugno 2006 14:38 | Filed Under [ Code & Snippet .NET Framework .NET Framework 2.0 ]

Feedback

Gravatar

# 2017 Ford GT Wishlist

The GT made a name for itself in the 1960s, and the nameplate returned to Ford for the 2005 and 2006 models. Since then, the vehicle has truly evolved into a supercar, evident by it’s $100,000+ price tag.
The company has made some changes to the third-generation GT, prioritizing handling and track capabilities in their 2017 model. The result? Not only one of Ford’s most impressive cars ever, but perhaps one of the most innovative cars to ever be released.
For more information about the 2017 Ford GT checkout.
28/04/2017 19:34 | david
Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET