alip1 (Normal User)
Pro
Messaggi: 139
Iscritto: 12/08/2019
|
Buon giorno a tutti
Nell'evento form_closing di un form ho quest semplice istruzione
Codice sorgente - presumibilmente C# / VB.NET |
If Not IsNothing(Me.SCBase) Then gUserLog.PosTreeView = Me.SCBase.SplitterDistance
|
dove scBase è uno splitter presente nel form e con l'istruzione mi volevo salvare il valore della proprietà
Codice sorgente - presumibilmente Plain Text |
in modo che quando riapro il form lo splitter si trovi nella posizione in cui è stato lasciato.
La cosa funziona se ogni volta che l'utente sposta lo splitter su e giu ( è uno splitter orizzontale) memorizzo il valore, ma volevo farlo solo una volta alla fine prima che il form venisse completamente chiuso.
Il problema che mi da errore sulla proprietà
Codice sorgente - presumibilmente Plain Text |
Me.SCBase.SplitterDistance
|
dicendomi che "Riferimento a un oggetto non impostato su un'istanza di oggetto.". Ma l'oggetto SCBASE non è nothing ed inoltre la proprietà contiene un valore numerico.. non capisco dove sta il problema. Secondo voi??
Grazie in anticipo Ultima modifica effettuata da alip1 il 05/07/2021 alle 12:08 |
|
nessuno (Normal User)
Guru^2
Messaggi: 6404
Iscritto: 03/01/2010
|
Mi sa che il tuo problema sta in
gUserLog.PosTreeView
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
alip1 (Normal User)
Pro
Messaggi: 139
Iscritto: 12/08/2019
|
Postato originariamente da nessuno: Mi sa che il tuo problema sta in
gUserLog.PosTreeView
|
L'errore me lo da sulla proprietà splitterdistance dell'oggetto splitter SCBase mi dice che la proprietà è nothing... guserlog.postreeview è una semplice struttura che contiene questa proprietà ed un'altra ed entrambe hanno un valore intero aggiornabile...
Inoltre come dicevo se lo faccio nell'evento moved dello splitter l'istruzione non da errore ma se la faccio nell'evento closing del form avviene l'errore. È come se la proprietà fosse settabile solo nell'evento moved dello splitter...!!?? Ma la documentazione non dice così anche perché se inverto ed assegno il valore contenuto in userlog.postreeview e l'assegno alla proprietà in questione lo splitter si posiziona in base al valore passato... Non so proprio cosa pensare... la scocciatura sta nel fatto che mi devo salvare il valore ripetutamente ... Grazie comunque
Ultima modifica effettuata da alip1 il 07/07/2021 alle 13:08 |
|
nessuno (Normal User)
Guru^2
Messaggi: 6404
Iscritto: 03/01/2010
|
L'unico consiglio è quello di zippare il progetto (nelle parti essenziali) e farcelo scaricare per fare il debugging (che facilmente ti direbbe la causa del problema).
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
alip1 (Normal User)
Pro
Messaggi: 139
Iscritto: 12/08/2019
|
Postato originariamente da nessuno:
L'unico consiglio è quello di zippare il progetto (nelle parti essenziali) e farcelo scaricare per fare il debugging (che facilmente ti direbbe la causa del problema). |
Grazie ma è abbastanza grande... |
|
nessuno (Normal User)
Guru^2
Messaggi: 6404
Iscritto: 03/01/2010
|
Potresti eliminare le parti che non servono... ma se non vuoi
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
alip1 (Normal User)
Pro
Messaggi: 139
Iscritto: 12/08/2019
|
Comunque ho risolto spostando tutto in una routine che chiamo quando clicco su un bottone exit del menu e così il problema è risolto e raggirato. La mia ipotesi è che nell'evento closing del form i controlli sul form non siano più utilizzabili o almeno le relative proprietà, al di là di ciò che dicono i manuali. Non so darmi un'altra spiegazione.
|
|
nessuno (Normal User)
Guru^2
Messaggi: 6404
Iscritto: 03/01/2010
|
Avresti avuto un'altra spiegazione se ci avessi fatto controllare il progetto
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
alip1 (Normal User)
Pro
Messaggi: 139
Iscritto: 12/08/2019
|
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:
Codice sorgente - presumibilmente VB.NET |
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:
Codice sorgente - presumibilmente C# / VB.NET |
'************** Data USER LOGGATO **********
Public gUserLog As DataUserLogon
|
quindi la semplice istruzione:
Codice sorgente - presumibilmente Plain Text |
gUserLog.PosTreeView = SCBase.SplitterDistance
|
nell'evento closing
Codice sorgente - presumibilmente VB.NET |
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 il 08/07/2021 alle 19:01 |
|