LibreofficeBase宏-如何使窗体上的控件可见/隐藏



我创建了一个包含两个组合框Combo1Combo2的数据库Form。Combo2的可见性取决于Combo1的状态:Combo1已检查,Combo2可见;未选中Combo1,隐藏Combo2

我本以为能找到Combo2.setVisible(Combo1.isVisible())这样的东西,但我太乐观了。

这是我一直在玩的宏:

Sub MyMacro(oEvent as Object)
msgbox(oEvent.Source.getState())   rem returns Checked/Unchecked status of Combo1
msgbox(oEvent.source.model.Name)   rem Name of the Event generator (Combo1)
End Sub
cb2 = ThisComponent.Drawpage.Forms.getByName("MainForm").getByName("Combo2")
msgbox(cb2.Name)

打印正确Combo2,所以我认为我有一个合适的参考。。。

现在呢?

今天是我玩Libreoffice Base(及其bug(的第一天,这只是我想为明天的演示添加的一些不错的东西。我以前从未在微软和Libreoffice套件中使用过宏,所以我的移动速度非常慢。

我上一次使用BASIC大概是在1990年左右。

我在网上浏览了许多教程(通常基于Libreoffice Calc单元格(,字符串搜索了Andrew Pitonyak的两本主要书籍(《OpenOffice.org有用的宏信息》和《OpenOffice.orgMacros Explained(OOME(》(,但在尝试了大量片段后,我一无所获。

与libreoffice宏相同-启用文本字段上可见的切换

有指针吗?

这是一个工作片段(不能保证是最直接的,因为我的宏经验长达一天(:

Sub SetVisibility(oEvent as Object)
cb2 = ThisComponent.Drawpage.Forms.getByName("MainForm").getByName("Combo2")
cb2.enableVisible = oEvent.Source.getState()   
rem the action is activated by Combo1, the event source
End Sub

最新更新