如何获取 Uno CheckBox 控件的名称和标签?
Posted
技术标签:
【中文标题】如何获取 Uno CheckBox 控件的名称和标签?【英文标题】:How to get name & label of UnoCheckBoxControl? 【发布时间】:2015-04-16 13:25:22 【问题描述】:我想获取 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
【问题讨论】:
【参考方案1】:您应该使用 XRAY (https://wiki.documentfoundation.org/Macros) 之类的工具。有了它,您可以详细检查对象。所以你会发现每个包含名称的控件都有一个模型(com.sun.star.awt.XControlModel)。
...
For Each cControl In Controls
I = I + 1
'xray cControl
A = A & cControl.getModel().Name ' To get back the name of cControl.
Next cControl
...
【讨论】:
以上是关于如何获取 Uno CheckBox 控件的名称和标签?的主要内容,如果未能解决你的问题,请参考以下文章
C#给ToolStrip加一个checkbox自定义控件,如何获取此控件是不是勾选?
使用js获取checkbox控件在GridView中的第几行