居中消息框 .NET - 适用于 OpenEdge 11.6(32 位)的进度开发人员工作室



我一直在正在进行的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).aspxhttps://msdn.microsoft.com/en-us/library/system.windows.forms.messagebox.show(v=vs.110).aspx

解决方法可能是使用定义为对话框的框架。

这是一个非常快速和肮脏的代码,可以帮助您入门:

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。

这应该使您能够在所需位置显示消息。

最新更新