Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [VB.NET]Oggetti: accessibilità da form a form

    Salve.
    Ho un form principale (Form1.vb) all'interno del quale sono definiti i parametri per la connessione al database.

    codice:
    Dim PercorsoDB As String = "C:\progetti\estrattoConto\estrattoConto\Data.mdb"
    
    Dim ConnString As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
    "Data Source=" & PercorsoDB
    Dim objCn As New OleDbConnection(ConnString)
    Da una qualsiasi sub, presente all'interno di questo form principale eseguo la seguente chiamata di metoto:

    codice:
    objCn.Open()
    ... nessun problema.

    Adesso, all'interno di una sub contenuta in un Form secondario (Form2.vb) eseguo nuovamente la chiamata di metodo:

    codice:
    objCn.Open()
    E mi dice: nome objCn non "dichiarato".
    Ho provato anche nel seguente modo:

    codice:
    Form1.objCn.Open()
    Ma risponde sempre nello stesso modo.
    Ma come dovrei fare?
    Grazie in anticipo.
    Nicola Baldi <% Naighes %>
    Il mio blog!

    "Non hai veramente capito qualcosa fino a quando non sei in grado di spiegarlo a tua nonna."

  2. #2
    Dichiara objCn in un modulo VB:
    codice:
    Module Module1
       Public objCn As OleDbConnection
    End Module
    Chi non cerca trova.

  3. #3
    Perfetto!
    Grazie infinite.
    Nicola Baldi <% Naighes %>
    Il mio blog!

    "Non hai veramente capito qualcosa fino a quando non sei in grado di spiegarlo a tua nonna."

  4. #4

    ancora una cosa...

    Riesumo questo thread in quanto ho altre precisazioni da chiedere!

    Allora, ho un form (Form1.vb) che contiene un oggetto ListView (ListView1).

    All'interno di questo Form è definita una sub che dovrebbe cancellare tutti gli elementi dalla lista:

    codice:
    Public Sub pulisciLista()
        ListView1.Items.Clear()
    End Sub
    Ora, se richiamo questa sub dal form stesso, non ci sono problemi.
    Se la richiamo da un form secondario (Form2.vb) sono costretto a scrivere così:

    codice:
    ' A quanto ho capito devo necessariamente creare un oggetto di riferimento a Form1...
    Dim formPrincipale As New Form1
    ' Ed ecco che richiamo la sub:
    formPrincipale.pulisciLista()
    Solo che... non succede niente!
    La lista continua a rimanere piena!
    Ma perchè?

    Grazie mille in anticipo.
    Nicola Baldi <% Naighes %>
    Il mio blog!

    "Non hai veramente capito qualcosa fino a quando non sei in grado di spiegarlo a tua nonna."

  5. #5

    Re: ancora una cosa...

    Originariamente inviato da naighes
    Riesumo questo thread in quanto ho altre precisazioni da chiedere!

    Allora, ho un form (Form1.vb) che contiene un oggetto ListView (ListView1).

    All'interno di questo Form è definita una sub che dovrebbe cancellare tutti gli elementi dalla lista:

    codice:
    Public Sub pulisciLista()
        ListView1.Items.Clear()
    End Sub
    Ora, se richiamo questa sub dal form stesso, non ci sono problemi.
    Se la richiamo da un form secondario (Form2.vb) sono costretto a scrivere così:

    codice:
    ' A quanto ho capito devo necessariamente creare un oggetto di riferimento a Form1...
    Dim formPrincipale As New Form1
    ' Ed ecco che richiamo la sub:
    formPrincipale.pulisciLista()
    Solo che... non succede niente!
    La lista continua a rimanere piena!
    Ma perchè?

    Grazie mille in anticipo.
    Perchè scrivendo Dim formPrincipale As New Form1 hai semplicemente creato un nuovo Form1, che non ha nessuna relazione con il Form1 aperto inizialmente.
    Occorre fare in modo che Form2 conosca l'instanza di Form1, in questo modo:
    codice:
    'in Form1
    Dim f As New Form2
    f.Owner = Me
    f.ShowDialog()
    
    'in Form2
    Dim f As Form1
    f = Me.Owner
    f.pulisciLista()
    Chi non cerca trova.

  6. #6
    Finalmente credo di cominciar a capire!
    Domani in ufficio provo immediatamente e poi ti faccio sapere.

    Grazie mille!
    Nicola Baldi <% Naighes %>
    Il mio blog!

    "Non hai veramente capito qualcosa fino a quando non sei in grado di spiegarlo a tua nonna."

  7. #7
    C'è qualcosa che non mi torna.

    Cosa significa questa cosa esattamente?

    codice:
    f.Owner = Me
    Ti dico questo perchè mi da questo errore: "prevista dichiarazione".
    A cosa fa riferimento la proprietà Owner?

    Grazie ancora.
    Nicola Baldi <% Naighes %>
    Il mio blog!

    "Non hai veramente capito qualcosa fino a quando non sei in grado di spiegarlo a tua nonna."

  8. #8
    Niente, come non detto...
    Distrazione mia.

    Grazie e scusate.
    Nicola Baldi <% Naighes %>
    Il mio blog!

    "Non hai veramente capito qualcosa fino a quando non sei in grado di spiegarlo a tua nonna."

  9. #9
    Forse perchè non hai dichiarato f...
    codice:
    Dim f As Form1
    Chi non cerca trova.

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.