2015-04-16 52 views
0

我想要獲得LibreOffice Basic中對話框中包含的一些控件的名稱和標籤。如何獲取UnoCheckBoxControl的名稱和標籤?

我可以在我的示例控件上調用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 

回答

2

你應該使用像XRAY(https://wiki.documentfoundation.org/Macros)的工具。有了這個,你可以詳細檢查對象。所以你會發現每個包含Name的Control都有一個Model(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 
...