Ошибка во время автоматической обработки Catia VBA 80010005 - выбор ERROR

Когда вы вызываете Arrays.asList, он не возвращает java.util.ArrayList. Он возвращает java.util.Arrays$ArrayList, который является неизменным списком. Вы не можете добавить к нему, и вы не можете удалить его.

Если вы попытаетесь добавить или удалить элементы из них, вы получите UnsupportedOperationException

1
задан ashleedawg 13 July 2018 в 13:49
поделиться

1 ответ

Сначала вы должны знать, что при использовании пользовательского интерфейса и по-прежнему хотите взаимодействовать с CATIA, вы должны выбирать:

  1. Запустить пользовательский интерфейс в NoModal: mode UserFormNow.Show 0
  2. Скрыть пользовательский интерфейс каждый раз, когда вы хотите взаимодействовать с CATIA: 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
0
ответ дан P.Manthe 17 August 2018 в 12:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: