Oppure

Loading
08/07/21 16:59
alip1
Postato originariamente da nessuno:

Avresti avuto un'altra spiegazione se ci avessi fatto controllare il progetto

Ok per farlo mi limito alle cose essenziali:
Ho una classe così definita:
Public Class DataUserLogCS
   Private mlidAmm As Integer
   Private mstLogName As String   'logon name windows access
   Private mstPwd As String       ' eventuale pwd
   Private mlidUser As Integer    ' = se solo Amm   diverso da 0 se anche utente dell'App
   Private mflagAmm As Boolean    ' true se Amm
   Private mflagAccessWindow As Boolean   'true se accesso con credenziali window

   Private mstType As String
   Private miGGBeforNotification As Integer
   Private midGroupDefault As Integer

   Public Property LogName As String
      Get
         Return mstLogName
      End Get
      Set(value As String)
         mstLogName = value
      End Set
   End Property
   Public Property PWD As String
      Get
         Return mstPwd
      End Get
      Set(value As String)
         mstPwd = value
      End Set
   End Property

   Public Property idAMM As Integer
      Get
         Return mlidAmm
      End Get
      Set(value As Integer)
         mlidAmm = value
         flagAmm = True
      End Set
   End Property
   Public Property idUser As Integer
      Get
         Return mlidUser
      End Get
      Set(value As Integer)
         mlidUser = value
         ' CaricaInGruppi()
      End Set
   End Property
  
   Public Property flagAmm As Boolean
      Get
         Return mflagAmm
      End Get
      Set(value As Boolean)
         mflagAmm = value

      End Set
   End Property

   Public Property flagAccessWindow As Boolean
      Get
         Return mflagAccessWindow
      End Get
      Set(value As Boolean)
         mflagAccessWindow = value

      End Set
   End Property

   Public Property GGBeforeNotification As Integer
      Get
         Return miGGBeforNotification
      End Get
      Set(value As Integer)
         miGGBeforNotification = value
      End Set
   End Property

   Public Property IdGroupDefaul As Integer
      Get
         Return midGroupDefault
      End Get
      Set(value As Integer)
         midGroupDefault = value
      End Set
   End Property
 
   Public Sub New()
      flagAmm = False
      idUser = 0
   End Sub
End Class


quindi una variabile pubblica così definita:
 '************** Data USER LOGGATO **********
   Public gUserLog As DataUserLogon


quindi la semplice istruzione:
 gUserLog.PosTreeView = SCBase.SplitterDistance
nell'evento closing
Private Sub frmMainContratti_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
del form...

Negli altri form e routine la variabile non viene più utilizzatasalvo che il valore di gUserLog.PosTreeView viene letto da un file di testo nel Main dell'App e riscritto nello stesso file alla chiusura dell'Appplicazione ,,, ma queste due operazioni funzionano.


Ultima modifica effettuata da alip1 08/07/21 17:01
aaa
09/07/21 8:39
La classe è

DataUserLogCS

ma la variabile pubblica (dichiarata dove?) è di tipo diverso

DataUserLogon

E non si capisce cosa sia

PosTreeView

Così non avrai molte risposte

09/07/21 11:13
Carlo
Quello che nessuno sta cercando di dirti è che se vuoi un aiuto devi mettere in condizione chi legge di avere gli elementi su cui lavorare.
Quando viene chiuso un programma, l'evento FormClosing si genera prima che i controlli siano disattivati, invece l'evento FormClosed si attiva quando il form e i controlli contenuti oramai non esistono più.

Le seguenti due righe dimostrano che salvare la posizione del separatore di uno splittercontainer (SCBase) alla chiusura del form è fattibile:
Imports System.IO

Public Class Form1
    Private Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing
        ' alla chiusura memorizzo in un file la posizione del separatore
        File.WriteAllText("SplitterDistance.txt", SCBase.SplitterDistance.ToString)
    End Sub

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        ' se la posizione del separatore è stata salvata la leggo e la imposto
        If File.Exists("SplitterDistance.txt") Then
            SCBase.SplitterDistance = Convert.ToInt16(File.ReadAllText("SplitterDistance.txt"))
        End If
    End Sub
End Class


Ora un tuo codice che ci mostra il problema usando il minimo indispensabile, ma completo, ci permetterebbe di verificare il problema.
Anzi vedrai che quando vai a smontare il tuo programma, il problema lo trovi da solo.
Ultima modifica effettuata da Carlo 09/07/21 11:44
in programmazione tutto è permesso
12/07/21 14:18
alip1
Postato originariamente da nessuno:

La classe è

DataUserLogCS

ma la variabile pubblica (dichiarata dove?) è di tipo diverso

DataUserLogon

E non si capisce cosa sia

PosTreeView

Così non avrai molte risposte



Buon pomeriggio a tutti.
Chiedo scusa ma ho commesso un errore senza rendermene conto avevo cambiato la classe DataUserLogCS in
DataUserLogon ma non la referenziavo in modo opportuno inoltre in alcune parti mi riferivo ad una e in altre parti all'altra.... me ne sono accorto togliondo la classe DataUserLogCS dal progetto così mi sono saltati fuori gli errori...
Problerma risolto e vi ringrazio di nuovo per la panzienza e mi scuserete con un pò di comprensione.
:pat:
aaa