Когда вы вызываете Arrays.asList, он не возвращает java.util.ArrayList
. Он возвращает java.util.Arrays$ArrayList
, который является неизменным списком. Вы не можете добавить к нему, и вы не можете удалить его.
Если вы попытаетесь добавить или удалить элементы из них, вы получите UnsupportedOperationException
Сначала вы должны знать, что при использовании пользовательского интерфейса и по-прежнему хотите взаимодействовать с CATIA, вы должны выбирать:
UserFormNow.Show 0
Me.Hide
или UserFormNow.Hide
Затем я настоятельно рекомендую вам не искать элементы с именами:
UserFormNow.Controls("Textbox" & i).SetFocus
Если вы хотите сгруппировать элементы управления и прокрутить их, используйте кадр , а затем используйте цикл For Each
.
For Each currentTextBox In MyFrame.Controls
MsgBox currentTextBox.Text
Next
Что касается вашего кода, можно сделать много упрощений:
Private Sub Auswahl_Click()
Dim sel As Object
Dim currentTextBox As TextBox
Dim Filter As Variant
ReDim Filter(0)
Filter(0) = "Body"
Set sel = CATIA.ActiveDocument.Selection
'Loop through each textbox
For Each currentTextBox In MyFrame.Controls
sel.Clear
'Ask for the selection and test the result at the same time
If sel.SelectElement2(Filter, "Wahle ein Body aus...", False) = "Normal" Then
'Get the name without saving the object
currentTextBox.Text = sel.Item2(1).Value.Name
Else
'allow the user to exit all the process if press Escape
Exit Sub
End If
Next
sel.Clear
End Sub