EPR类企业管理系统

在我们现有系统基础上或全新开发,提供定制服务
为您的企业高效快速实施ERP,WMS,MES,CRM管理系统
全面管控物料仓库、销售业务、采购业务、仓库业务
生产过程、质量检验、组织架构、业务报表


定制
QQ:460-3528

开发
QQ群:3360-90194

源码
微信:136-3650-3721

如何:实现自定义消息传递类

在许多情况下,包含文本和几个按钮的消息框会显示在Windows Forms XAF应用程序中。例如,当最终用户关闭具有已修改数据的明细视图或通过ModificationsController.CancelAction操作取消更改时,将显示一个消息框。这些消息框由Messaging类提供。

AskConfirmation_Save

此类利用XtraMessageBox功能。在某些情况下,可能需要自定义Messaging类。在这种情况下,您应该继承此类。本主题详细介绍了实现此类后代的方法。

提示

DevExpress代码示例数据库(http://www.devexpress.com/example=E1527)中提供了完整的示例项目。

注意

如果需要在关闭消息框后执行自定义代码,则可以处理Messaging.ConfirmationDialogClosed事件而不是实现自定义Messaging类。

更改默认焦点按钮

消息类公开Messaging.Show虚拟方法,它显示通过一个消息框XtraMessageBox.Show方法。默认情况下使用XtraMessageBox.Show重载,该重载采用ownertextcaptionbuttonicon参数。此重载会显示一个消息框,最初将第一个(“确定”)按钮对准焦点。在此示例中,我们将重写Messaging.Show方法,并使用另一个采用defaultButton的XtraMessageBox.Show方法的重载。额外参数。因此,可以指定要聚焦的按钮。

将新的CustomXtraMessageBoxMessaging类添加到Windows Forms模块项目中。此类应继承Messaging类。添加默认的公共构造函数,并覆盖ShowCore方法,如下面的代码片段所示。

using System.Windows.Forms;
using DevExpress.ExpressApp;
using DevExpress.XtraEditors;
using DevExpress.ExpressApp.Win.Core;
// ...
public class CustomXtraMessageBoxMessaging : Messaging {
    public CustomXtraMessageBoxMessaging(XafApplication application)
        : base(application) { }
    protected override DialogResult ShowCore(
        string message, string caption, MessageBoxButtons buttons, MessageBoxIcon icon) {
        return XtraMessageBox.Show(
           message, caption, buttons, icon, MessageBoxDefaultButton.Button2);
    }
}

调用Windows窗体模块项目的模型编辑器,然后导航到“选项”节点。该IModelOptionsWin.Messaging属性指定Windows窗体应用程序消息中使用的类型。将此属性值设置为自定义类的标准名称(例如“ CustomMessaging.Module.Win.CustomXtraMessageBoxMessaging”)。

CustomMessaging_3

运行Windows窗体应用程序。打开任何持久对象的详细信息视图并进行一些更改。单击关闭。将显示带有“否”按钮的消息框。

CustomMessaging1

使用自定义消息框而不是XtraMessageBox

您可以在“消息传递”实施中使用完全自定义的消息框。在下面的代码段中,演示了System.Windows.Forms.MessageBox类的用法。

using System.Windows.Forms;
using DevExpress.ExpressApp;
using DevExpress.ExpressApp.Win.Core;
// ...
public class CustomWinFormsMessageBoxMessaging : Messaging {
    public CustomWinFormsMessageBoxMessaging(XafApplication application)
        : base(application) { }
    protected override DialogResult ShowCore(
        string message, string caption, MessageBoxButtons buttons, MessageBoxIcon icon) {
        return MessageBox.Show(message, caption, buttons, icon);
    }
}

调用Windows窗体模块项目的模型编辑器。导航到“选项”节点。将IModelOptionsWin.Messaging属性设置为您的自定义类的标准名称(例如“ CustomMessaging.Module.Win.CustomWinFormsMessageBoxMessaging”)。

运行Windows窗体应用程序。打开任何持久对象的详细信息视图并进行一些更改。单击关闭。将显示以下消息框。

CustomMessaging2

相关文章

转载保留此链接,注明出处