我想获取LibreOffice Basic中对话框中包含的一些控件的名称和标签。
我可以在我的示例控件上调用getImplementationName()
。
我得到了这些:stardiv.Toolkit.UnoEditControl
,stardiv.Toolkit.UnoCheckBoxControl
,stardiv.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
答案 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
...