Очевидно, что любой подход from ctrl in form.Controls...
пропускает любые (расширенные) текстовые поля, которые находятся внутри панели / другого контейнера. Это также то, что Марк Джей сказал в комментарии к ответу Джонатана.
Вот процедура для явного рекурсивного обхода всех элементов управления и очистки любого элемента управления, который (1) не имеет дочерних элементов, а (2) является (расширенным) текстовым полем.
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
Передайте форму в качестве корневого элемента управления, чтобы запустить рекурсию, чтобы очистить все нужные элементы управления:
ClearControl(Me)
.