EPR类企业管理系统

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


定制
QQ:460-3528

开发
QQ群:3360-90194

源码
微信:136-3650-3721

如何:显示自定义Windows窗体

在XAF WinForms应用程序中,可以使用标准Windows Forms方法(例如Form.ShowForm.ShowDialog方法)显示自定义窗口。如果表单应显示应用程序数据库中的数据,则可以使用XAF机制通过IObjectSpace接口进行CRUD操作。本主题演示了单击XAF操作时如何初始化和显示自定义窗体。

显示自定义窗口

以下步骤描述了如何在ActionExecute事件上显示自定义窗口。

  • 创建和设计自定义窗体,例如NonXAFForm
  • 创建一个新的ViewController后代,并在其构造函数中添加一个新的SimpleAction
  • 在操作的Execute事件处理程序中创建一个新的NonXAFForm实例。
  • 使用Form.ShowDialog方法调用窗口。

    using DevExpress.ExpressApp;
    using DevExpress.ExpressApp.Actions;
    using System.Windows.Forms;
    //...
    public class ShowWindowController : ViewController {
        public ShowWindowController() {
            SimpleAction showWindowAction = new SimpleAction(this, "ShowWindow", 
    DevExpress.Persistent.Base.PredefinedCategory.View);
            showWindowAction.ImageName = "ModelEditor_Views";
            showWindowAction.Execute  = 
    new SimpleActionExecuteEventHandler(showWindowAction_Execute);
        }
        void showWindowAction_Execute(object sender, SimpleActionExecuteEventArgs e) {
            NonXAFForm form = new NonXAFForm();
            //...
            form.ShowDialog();
        }
    }
    

CustomWindowWithoutXAFData

显示带有XAF数据的自定义窗口

在此示例中,当ActionExecute事件发生时,将调用带有显示XAF数据的控件的自定义窗口。该DataGridView的控制这里用于演示目的。请按照以下步骤来实现此行为:

  • 创建一个新的ViewController后代,并在其构造函数中添加一个新的SimpleAction
  • 在动作的Execute事件处理程序中,创建一个新的表单实例。
  • 使用XafApplication.CreateObjectSpace方法创建一个新的IObjectSpace实例。
  • 使用IObjectSpace.CreateCollection方法获取Contact类型的对象集合,并将其设置为DataGridView控件的数据源。
  • DataGridView控件放在Form上,然后使用Form.ShowDialog方法调用此Form 。
using DevExpress.ExpressApp;
using DevExpress.ExpressApp.Actions;
using System.Collections;
using System.Windows.Forms;
//...
public class ShowWindowController : ViewController {
    public ShowWindowController() {
        SimpleAction showWindowAction = new SimpleAction(this, "ShowWindow", 
DevExpress.Persistent.Base.PredefinedCategory.View);
        showWindowAction.ImageName = "ModelEditor_Views";
        showWindowAction.Execute  = 
new SimpleActionExecuteEventHandler(showWindowAction_Execute);
    }
    void showWindowAction_Execute(object sender, SimpleActionExecuteEventArgs e) {
        Form form = new Form();
        form.Text = "Form with XAF Data";
        IObjectSpace objectSpace = Application.CreateObjectSpace(typeof(Contact));
        IList contactsCollection = objectSpace.CreateCollection(typeof(Contact));
        DataGridView dataGridView = new DataGridView();
        dataGridView.DataSource = contactsCollection;
        dataGridView.Dock = DockStyle.Fill;
        form.Controls.Add(dataGridView);
        form.ShowDialog();
    }
}

CustomWindowWithXAFData

通过将表单的构造函数添加到IObjectSpace参数,可以在现有表单的控件中显示XAF数据。在此构造函数中,使用IObjectSpace.GetObjects方法指定控件的DataSource属性。下面的代码片段显示了此构造函数的示例。

using System.Windows.Forms;
using DevExpress.ExpressApp;
using DevExpress.XtraEditors;
//...
public partial class NonXAFForm : XtraForm {
    //...
    private IObjectSpace objectSpace;
    public NonXAFForm(IObjectSpace objectSpace) : base() {
        InitializeComponent();
        this.objectSpace = objectSpace;
        dataGridView1.DataSource = objectSpace.GetObjects(typeof(Contact));
        //...
    }
}
相关文章

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