如何获得名称& UnoCheckBoxControl的标签?

时间:2015-04-16 13:25:22

标签: libreoffice openoffice-basic libreoffice-basic

我想获取LibreOffice Basic中对话框中包含的一些控件的名称和标签。

我可以在我的示例控件上调用getImplementationName()

我得到了这些:stardiv.Toolkit.UnoEditControlstardiv.Toolkit.UnoCheckBoxControlstardiv.Toolkit.UnoRadioButtonControl

我感兴趣的是这些控件的名称,在使用GUI构建它们时进行参数化。

这是我的代码:

Sub test()
    Dim Dlg As Object
    Dim Controls As Object
    Dim cControl As Object
    Dim I As Integer
    Dim A As String

    DialogLibraries.LoadLibrary("Standard")
    Dlg = CreateUnoDialog(DialogLibraries.Standard.BoiteDeDialogue1)

    Controls = Dlg.Controls

    I = 0
    A = ""
    For Each cControl In Controls
        I = I + 1
        A = A & cControl.getImplementationName()
        ' How to get back the name of cControl here ?
    Next cControl

    MsgBox "There is " & I & " controls in that form !" & A
End Sub

1 个答案:

答案 0 :(得分:2)

您应该使用XRAY(https://wiki.documentfoundation.org/Macros)之类的工具。有了这个,您可以详细检查对象。所以你会发现每个Control都有一个Model(com.sun.star.awt.XControlModel),它包含Name。

...
    For Each cControl In Controls
        I = I + 1
        'xray cControl
        A = A & cControl.getModel().Name ' To get back the name of cControl.
    Next cControl
...