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

    vb.net annullare per un determinato evento una funzione

    Ho questa necessità: devo annullare per il tempo di lettura di un file un determinato evento... in sostanza devo trascurare l'evento

    Private Sub CheckStateChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _
    Handles EitInput_RadioCS.CheckedChanged, EitInput_PriceRis.CheckStateChanged, EitAstaM_Considera.CheckedChanged, _
    EitInput_RadioAsta.CheckedChanged, EitSpedizione_Considera.CheckStateChanged, EitServizi_CiaFoto.CheckedChanged
    EitControlloDati()
    End Sub

    metre eseguo :

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    ricordo = My.Computer.FileSystem.ReadAllText(Application.Sta rtupPath + "\Registro.ini")
    EitRicordaLeggi(Me)
    End Sub

    è possibile?

  2. #2
    Due eventi di una stessa classe non verranno mai eseguiti in contemporanea. Tuttavia se EitRicordaLeggi modifica uno dei checkbox gestiti da CheckStateChanged la richiamerà indirettamente; in tal caso ti basta inserire a livello di classe un flag attivato da Form_Load che indichi a CheckStateChanged di non fare nulla.
    codice:
    Private loadingFlag As Boolean
    Private Sub CheckStateChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _
    Handles EitInput_RadioCS.CheckedChanged, EitInput_PriceRis.CheckStateChanged, EitAstaM_Considera.CheckedChanged, _
    EitInput_RadioAsta.CheckedChanged, EitSpedizione_Considera.CheckStateChanged, EitServizi_CiaFoto.CheckedChanged
        If Not loadingFlag Then EitControlloDati()
    End Sub
    
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    loadingFlag = True
    ricordo = My.Computer.FileSystem.ReadAllText(Application.StartupPath + "\Registro.ini")
    EitRicordaLeggi(Me)
    loadingFlag = False
    End Sub
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    grazie mille problema risolto semplicemente con un boolean

    Dim LoadForm As Boolean

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    LoadForm = True
    ricordo = My.Computer.FileSystem.ReadAllText(Application.Sta rtupPath + "\Registro.ini")
    EitRicordaLeggi(Me)
    LoadForm = False
    Me.EitControlloDati()
    End Sub

    Private Sub CheckStateChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _
    Handles EitInput_RadioCS.CheckedChanged, EitInput_PriceRis.CheckStateChanged, EitAstaM_Considera.CheckedChanged, _
    EitInput_RadioAsta.CheckedChanged, EitSpedizione_Considera.CheckStateChanged, EitServizi_CiaFoto.CheckedChanged
    If Me.LoadForm = False Then
    EitControlloDati()
    End If
    End Sub

  4. #4
    ... che peraltro era la soluzione che ti ho proposto...
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    infatti per questo ti ringrazio

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.