居中消息框 .NET - Progress Developer Studio for OpenEdge 11.6(32 位)

Centered Message Box .NET - Progress Developer Studio for OpenEdge 11.6 (32-bit)

我一直在 Progress OpenEdge 文档 (https://documentation.progress.com/output/ua/OpenEdge_latest/index.html#page/dvref/message-statement.html) 中寻找消息对齐,但找不到。

如何原生设置消息框以父窗体居中?


谢谢

简而言之,你不能!

长答案是您可以调用 win32 API 并以特定方式设置消息框。

然而,快速浏览 Win32 API(以及 .NET)显示无法修改默认位置:

https://msdn.microsoft.com/en-us/library/windows/desktop/ms645505(v=vs.85).aspx https://msdn.microsoft.com/en-us/library/system.windows.forms.messagebox.show(v=vs.110).aspx

解决方法可能是使用定义为 dialog-box 的框架。

这是一个非常快速但不完整的代码,可以帮助您入门:

DEFINE BUTTON   b1   LABEL "OK".
DEFINE VARIABLE cMsg AS CHARACTER   NO-UNDO FORMAT "x(30)" .

DEFINE FRAME fr1 
    cMsg NO-LABEL 
    b1
    cMsg AT COLUMN 1 ROW 1
    b1   AT COLUMN 5 ROW 3 
    WITH VIEW-AS DIALOG-BOX  SIZE 40 BY 5 
    .

ENABLE b1 WITH FRAME fr1.

ON "choose":U OF b1 
DO:
    MESSAGE "You pressed OK!" VIEW-AS ALERT-BOX.
    APPLY "close" TO FRAME fr1.
END.

/* Set the location */
FRAME fr1:ROW = 10.
FRAME fr1:COL = 30.

cMsg = "This is the message".

DISPLAY cMsg WITH FRAME fr1.

WAIT-FOR "close" OF FRAME fr1.

您可以使用 System.Windows.Forms.MessageBox

这样您就可以在所需位置显示消息。