Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    354

    [VBNET] Chiusura e apertura form figlio con errore

    Domanda banalotta:

    ho un form padre e uno figlio.

    avvio il programma e dal padre avvio il figlio che si apre al suo interno.

    sul form figlio ho il classico pulsante "Chiudi", per chiudere il solo form figlio con la classica forma "Me.Close".

    se successivamente dal form padre rilancio il figlio mi dice "Impossibile accedere a un oggetto eliminato.".

    due righe di codice per capire meglio:

    sul Padre:

    codice:
    Public Class MDIParent1
    
    Public NewForm1 As New Form1()
    
    Private Sub OptionsToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OptionsToolStripMenuItem.Click
    
    NewForm1.MdiParent = Me
    NewForm1.Show() 'Mostra il form1
    
    End Sub
    
    End Class

    sul Form figlio

    codice:
    Public Class Form1
    
    Private Sub cmdChiudi_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdChiudi.Click
    
    Me.Close()
    
    End Sub
    
    End Class

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Sposta la creazione all'interno della

    OptionsToolStripMenuItem_Click
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    354
    quindi non:

    Public NewForm1 As New Form1()

    ma semplicemente:

    Dim NewForm1 As New Form1()


    giusto?


    ho notato altra cosa, aprendo più form all'interno dello stesso padre, questi vanno a "scalare" e non si posizionano mai sul punto (0,0).

    ho provato con NewForm1.SetDesktopLocation(0, 0), ma non funziona e va sempre a "scalare".

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    455
    Originariamente inviato da Folcus
    quindi non:

    Public NewForm1 As New Form1()

    ma semplicemente:

    Dim NewForm1 As New Form1()


    giusto?


    ho notato altra cosa, aprendo più form all'interno dello stesso padre, questi vanno a "scalare" e non si posizionano mai sul punto (0,0).

    ho provato con NewForm1.SetDesktopLocation(0, 0), ma non funziona e va sempre a "scalare".
    codice:
    Private Sub OptionsToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OptionsToolStripMenuItem.Click
    
    Dim NewForm1 As New Form1()
    
    NewForm1.MdiParent = Me
    NewForm1.Show() 'Mostra il form1
    
    End Sub
    e poi levi la variabile NewForm dichiarata come publica.

    per il problema della posizione:

    NewForm1.Location = New Point(x,y)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.