1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| Dim ControleHanddlerIsActive As Boolean
Dim ControleHandlerCounterOfDésactive As Integer
Public Sub ActiveControlesHandler(ByVal State As Boolean)
If State = False Then
Interlocked.Increment(ControleHandlerCounterOfDésactive)
Else
Interlocked.Decrement(ControleHandlerCounterOfDésactive)
End If
If State = True And ControleHanddlerIsActive = False And ControleHandlerCounterOfDésactive = -1 Then
AddHandler DataGridView1.CurrentCellDirtyStateChanged, AddressOf EventCurrentCellDirtyChanged
AddHandler MainBindingSourcePaths.CurrentItemChanged, AddressOf EventbsCurrentItemChanged
AddHandler MainBindingSourcePaths.CurrentChanged, AddressOf EventbsCurrentChanged
AddHandler MainBindingSourcePaths.PositionChanged, AddressOf EventbsPositionChanged
AddHandler dtTablePaths.ColumnChanging, AddressOf EventTableColumnChanging
AddHandler dtTablePaths.ColumnChanged, AddressOf EventTableColumnChanged
AddHandler dtTablePaths.TableNewRow, AddressOf EventTableNewRow
Debug.Print(String.Format("Les évenements ont été activés par le tread [{0}] <{1}>", Thread.CurrentThread.ManagedThreadId, Thread.CurrentThread.Name))
ControleHanddlerIsActive = True
ElseIf State = False And ControleHanddlerIsActive = True And ControleHandlerCounterOfDésactive = 0 Then
RemoveHandler DataGridView1.CurrentCellDirtyStateChanged, AddressOf EventCurrentCellDirtyChanged
RemoveHandler MainBindingSourcePaths.CurrentItemChanged, AddressOf EventbsCurrentItemChanged
RemoveHandler MainBindingSourcePaths.CurrentChanged, AddressOf EventbsCurrentChanged
RemoveHandler MainBindingSourcePaths.PositionChanged, AddressOf EventbsPositionChanged
RemoveHandler dtTablePaths.ColumnChanging, AddressOf EventTableColumnChanging
RemoveHandler dtTablePaths.ColumnChanged, AddressOf EventTableColumnChanged
RemoveHandler dtTablePaths.TableNewRow, AddressOf EventTableNewRow
Debug.Print(String.Format("Les évenements ont été désactivés par le tread [{0}] <{1}>", Thread.CurrentThread.ManagedThreadId, Thread.CurrentThread.Name))
ControleHanddlerIsActive = False
End If
End Sub |
Partager