El problema que puedes tener es que te estés suscribiendo al evento de creación cada vez que pulsas el botón de On.
No puedo saberlo a ciencia cierta porque no veo que código tienes para el botón de Off. En el botón de Off tendrías que eliminar ese evento para asegurarte de esto.
Código vb:
Ver originalPrivate Sub btnOff_Click(sender As System.Object, e As System.EventArgs) Handles btnOff.Click
Try
RemoveHandler FileSystemWatcher1.Created, AddressOf fsw_crear
Catch ex As Exception
MessageBox.Show(ex.Message, "Error")
End Try
End Sub
Private Sub btnOn_Click(sender As System.Object, e As System.EventArgs) Handles btnOn.Click
Try
If ValidarRuta() <> False Then
btnDesactivar()
FileSystemWatcher1.Path = tbRuta.Text
'AddHandler FileSystemWatcher1.Changed, AddressOf fsw_cambiar
'AddHandler FileSystemWatcher1.Deleted, AddressOf fsw_borrar
AddHandler FileSystemWatcher1.Created, AddressOf fsw_crear
'AddHandler FileSystemWatcher1.Renamed, AddressOf fsw_renombrar
FileSystemWatcher1.Filter = tbFiltro.Text
FileSystemWatcher1.NotifyFilter = NotifyFilters.LastAccess Or NotifyFilters.Attributes Or _
NotifyFilters.CreationTime Or NotifyFilters.DirectoryName Or NotifyFilters.FileName _
Or NotifyFilters.LastWrite Or NotifyFilters.Security Or NotifyFilters.Size
FileSystemWatcher1.EnableRaisingEvents = True
End If
Catch ex As Exception
MessageBox.Show(ex.Message, "Error")
End Try
End Sub
Private Sub fsw_crear(sender As Object, e As FileSystemEventArgs)
Try
lbxCambios.Items.Add("Archivo Creado: " & Convert.ToString(e.FullPath))
Exit Sub
Catch ex As Exception
MessageBox.Show(ex.Message, "Error")
End Try
End Sub
Saludos.