Bonjour,

Je rencontre un comportement étrange sur l'appel de la méthode Clear() sur un Tabcontrol.

Lors du démarrage de mon programme, dans le form_load, je reconstruit un TabControl en fct du niveau d'accès de l'utilisateur.
Pour cela :

  1. Je mémorise dans une liste les TabPages présentes par défaut (celles que j'ai crée avec le concepteur)
  2. J'efface mon Tabcontrol
  3. Puis je rajoute dans mon TabControl, les TabPages en fonction des droits d'accès de l'utilisateur

Cette séquence se déroule jusqu'au bout et j'obtiens au final ce que je souhaite.

Mais lorsque j'effectue l'étape 2 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
MonTab.TabPages.Clear()

j'ai systématiquement un message d'exception qui apparait dans la fenêtre Sortie.
Exception levée : 'System.NullReferenceException'

Pourquoi ?

Avant l'appel à la méthode Clear() mon TabControl n'est pas vide

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
Debug.WriteLine(MonTab.TabCount.ToString & " TabPages")
Try
  MonTab.TabPages.Clear()
Catch ex As Exception
  Debug.WriteLine("Message :" & ex.Message)
End Try
' J'obtient ceci : 
' 2 TabPages
' Exception levée : 'System.NullReferenceException'
J'ai mis un point d'arrêt dans le catch et apparemment, je n'y passe pas.
Pourtant, dans ma fenêtre Sortie, j'ai bien un message d'exception qui apparait...