获取文本字段的高度或行数

时间:2016-04-12 09:03:40

标签: lotus-notes lotusscript

rc = ws.DialogBox("SomeForm",True,True,,,,,,doc,True)

我有一个带有文本字段的对话框。问题是当用户键入太多文本(添加到文本字段的新行太多)时,它将超出对话框的大小,不再显示。到目前为止唯一的解决方案是重新打开对话框,这将重新计算对话框的大小。

首先我尝试添加垂直滚动条:

rc = ws.DialogBox("SomeForm",True,,,,,,,doc,True)

然而,这也增加了一个水平滚动条,这是完全没必要的。

我的下一个方法是使用WIN-API手动设置大小:

Declare Function FindWindow Lib "user32" Alias "FindWindowA" (Byval lpClassName As Any, Byval lpWindowName As Any) As Long
Declare Function SetWindowPos Lib "user32" (Byval hwnd As Long, Byval hWndInsertAfter As Long, Byval x As Long, Byval y As Long, Byval cx As Long,Byval cy As Long, Byval wFlags As Long) As Long
Const SWP_NOMOVE = &H2

Dim myhWnd As Long
myhWnd = FindWindow("#32770", "Lotus Notes")
SetWindowPos myhWnd, -1, 0, 0, 617, 311, SWP_NOMOVE

这很好用,但我不知道何时执行它。从逻辑上讲,这必须在文本字段中添加新行时运行,但我无法检测到何时发生这种情况......

那么,有没有办法让我的对话框在大小方面具有动态性?我知道我可能在这里死路一条,但我认为值得一试:)

1 个答案:

答案 0 :(得分:0)

只需将文本字段更改为“本机操作系统样式”类型即可。然后定义最大高度,对话框的大小正确。然后滚动条自动出现在文本字段中,对话框不必更改大小。

Screenshot of field properties