如何让OpenOffice Writer组合框显示多行文本?

时间:2016-03-05 13:36:59

标签: forms combobox openoffice-writer

我正在开发一个OpenOffice Writer模板,可用于填写托儿中心的报告。

有一些标准结果,包括长句,我希望用户能够从组合框中选择合适的句子。我已将这些句子输入Openoffice Base数据库中的一个表,然后将其连接到Writer模板中的一系列组合框。但是,当用户选择包含很长句子的选项时,只能看到组合框长度的文本。

我想要做的是在选中时将组合框的选定值包裹在多行上,以便当用户从组合中选择一个长句时,所有(非常长的)文本出现在所选框中。 / p>

我一直在查看组合框控件的属性,但还没有找到一个允许组合框中的选定值进行自动换行(这样我就可以使组合框高出几行这样整个句子都适合方框)。

关于如何做到这一点的任何指示都将非常感激。

感谢,

大卫。

2 个答案:

答案 0 :(得分:1)

谢谢Jim K,这很有帮助。最后,我最后做的是创建一个文本框,我在命名为“OutcomeCombo”的组合框下方命名为“selectedOutcomeATextBox”。

然后我将以下宏代码附加到与“selectedOutcomeATextBox”关联的textModified事件:

Sub UpdateOutcomeA

    Dim Doc As Object
    Dim Form As Object
    Dim Ctl As Object
    Dim newCtl as Object

    Doc = ThisComponent
    Form = Doc.DrawPage.Forms.GetByIndex(0)
    Ctl = Form.getByName("OutcomeCombo")
    newCtl = Form.getByName("selectedOutcomeATextBox")

    newCtl.Text = Ctl.Text

End Sub

我还将“OutcomeCombo”的“Printable”属性设置为“No”,这样当文档打印时,组合框本身不会出现在打印页面上,而是“selectedOutcomeATextBox”文本框中已经有了当我从组合框中选择一个值时,由宏设置的值确实会显示所需的文本。我还将selectedOutcomeATextBox“文本框”的“TextType”属性设置为“Multi-Line”,这样超长文本将换行到下一行,从而显示存储在那里的非常长的字符串。

谢谢Jim K。

欢呼声,

David Buddrige

答案 1 :(得分:0)

显然,组合框没有MultiLine属性。几年前问了这个问题here但是没有解决。

需要进行一些宏编程的另一种选择是使用单个多行text field,然后创建一个滚动条按钮来改变选择。可以使用两个按钮代替滚动条来更改选项(上一个/下一个),甚至是列表框控件。以这种方式使用列表框控件的优势在于,他们可以一次看到所有选项,就像组合框一样。

另一种方法是分解每个句子并在列表框的几行中显示这些部分。然后,当单击一行时,使用列表框的事件侦听器一次选择句子的所有行。除了普通的可编辑多行文本框之外,还可以显示此内容,以防列表中没有任何答案。

还有一个想法:单选按钮可以有多行,因此动态显示单选按钮,每个句子一个。可以显示一个对话窗口来保存单选按钮。对话框的结果将用于填充多行文本字段。

或者你可以忍受截断的句子。也许有助于使控件更宽一些,或缩写句子。