zoukankan      html  css  js  c++  java
  • C/S中的MVC(4) 荣

    using System;
    using System.Data;
    using System.Windows.Forms;

    using Business;

    namespace Business.Base
    {
     /// <summary>
     /// Description:窗体的基类。
     /// </summary>
     public class FormBase
     {
      /// <summary>
      /// 存储窗体所需数据的DataSet对象。
      /// </summary>
      protected DataSet dataSet;

      /// <summary>
      /// 取得数据的委托。
      /// </summary>
      protected delegate void SetDataHandler();

      /// <summary>
      /// 处理成功信息的委托。
      /// </summary>
      protected delegate void SucessFunctionHandler();

      /// <summary>
      /// 执行操作的委托。
      /// </summary>
      protected delegate void ActionHandler();

      /// <summary>
      /// 执行操作的委托。
      /// </summary>
      private delegate void ActionParHandler(System.Windows.Forms.Form form, object obj);

      /// <summary>
      /// 取得数据的事件。
      /// </summary>
      protected event SetDataHandler SetDataEvent;

      /// <summary>
      /// 处理成功信息的事件。
      /// </summary>
      protected event SucessFunctionHandler SucessFunctionEvent;

      /// <summary>
      /// 执行操作的事件。
      /// </summary>
      protected event ActionHandler ActionEvent;

      /// <summary>
      /// 执行操作的事件。
      /// </summary>
      private event ActionParHandler ActionParEvent;

      /// <summary>
      /// Description:执行操作。
      /// </summary>
      protected void DoAction()
      {
       try
       {
        //取得数据
        if (SetDataEvent != null)
        {
         SetDataEvent();
        }

        //执行操作
        if (ActionEvent != null)
        {
         ActionEvent();
        }

        //成功后的操作
        if (SucessFunctionEvent != null)
        {
         SucessFunctionEvent();
        }
       }
       catch(Exception ex)
       {
        CommonBN.DealError(ex, "");
       }
       finally
       {
        //清除事件
        SucessFunctionEvent = null;
        SetDataEvent = null;
        ActionEvent = null;
       }
      }

      /// <summary>
      /// Description:执行操作。
      /// </summary>
      private void DoAction(System.Windows.Forms.Form form, object obj)
      {
       try
       {
        //取得数据
        if (SetDataEvent != null)
        {
         SetDataEvent();
        }

        //执行操作
        if (ActionParEvent != null)
        {
         ActionParEvent(form, obj);
        }

        //成功后的操作
        if (SucessFunctionEvent != null)
        {
         SucessFunctionEvent();
        }
       }
       catch(Exception ex)
       {
        CommonBN.DealError(ex , "");
       }
       finally
       {
        //清除事件
        SucessFunctionEvent = null;
        SetDataEvent = null;
        ActionEvent = null;
       }
      }

      /// <summary>
      /// Description:取得窗体的初始数据。
      /// </summary>
      protected void GetInitialData(System.Windows.Forms.Form form, object obj)
      {
       FormFactoryBN bn = new FormFactoryBN();

       //取得初始数据
       bn.InitialData(dataSet, form, obj);
      }

      /// <summary>
      /// Description:初始化控件。
      /// </summary>
      protected virtual void InitialData()
      {
      }

      /// <summary>
      /// Description:窗体初始化执行的操作。
      /// </summary>
      protected void LoadData(System.Windows.Forms.Form form, object obj)
      {
       this.ActionParEvent += new ActionParHandler(GetInitialData);
       this.SucessFunctionEvent += new SucessFunctionHandler(InitialData);
       DoAction(form, obj);
      }
     }
    }

  • 相关阅读:
    CodeForces 7B
    CodeForces 4D
    离散化
    线段树入门
    洛谷 P3951 小凯的疑惑(赛瓦维斯特定理)
    Codeforces 1295D Same GCDs (欧拉函数)
    Codeforces 1295C Obtain The String (二分)
    Codeforces 1295B Infinite Prefixes
    Codeforces 1295A Display The Number(思维)
    Codeforces 1294F Three Paths on a Tree(树的直径,思维)
  • 原文地址:https://www.cnblogs.com/admin11/p/213599.html
Copyright © 2011-2022 走看看