Apparemment, toute approche from ctrl in form.Controls...
Ignore tous les (riches) qui vivent dans des zones de texte d'un panneau/autre récipient. C'est aussi ce que MarkJ a dit en réponse à la réponse de Jonathan.
Voici une routine à recopier explicitement sur tous les contrôles et effacer tout contrôle qui (1) n'a pas d'enfants, et (2) est une zone de texte (riche).
Private Sub ClearControl(ByVal ctrl As Control)
If ctrl.Controls.Count > 0 Then
For Each subCtrl As Control In ctrl.Controls
ClearControl(subCtrl)
Next
End If
If TypeOf ctrl Is RichTextBox Then
DirectCast(ctrl, RichTextBox).Clear()
End If
REM You can clear other types of controls in here as well
If TypeOf ctrl Is TextBox Then
DirectCast(ctrl, TextBox).Clear()
End If
End Sub
passer le formulaire en tant que la commande de racine pour démarrer la récursion pour effacer tous les sous-contrôles souhaités: ClearControl(Me)
.
Je pense que cela ignore toutes les zones richtext qui se trouvent dans un conteneur sur le formulaire, plutôt que dans la racine du formulaire. – MarkJ