none
請教System.ComponentModel.ISupportInitialize的BeginInitI()和EndInit()觀念問題 RRS feed

  • 問題

    1. private void InitializeComponent()
    2. {    
    3.         this.DSS = new System.Data.DataSet();
    4.         ((System.ComponentModel.ISupportInitialize)(this.DS)).BeginInit();
    5.         ((System.ComponentModel.ISupportInitialize)(this.DSS)).BeginInit();
    6.         this.DSS.DataSetName = "NewDataSet";
    7.         this.DSS.Locale = new System.Globalization.CultureInfo("zh-TW");
    8.         this.ReportDataGrid = this.PageDG;//將DataGrid設定給報表元件
    9.         this.ReportDataSet = this.DSS;//將DataSet設定給報表元件
    10.         this.Load += new System.EventHandler(this.Page_Load);
    11.         ((System.ComponentModel.ISupportInitialize)(this.DSS)).EndInit();
    12. }

      請問為何要加這兩句
      System.ComponentModel.ISupportInitialize)(this.DS)).BeginInit()和.....EndInit
      我不能直接初始化我的DSS嗎
      如果這兩句拿掉 跟有這兩句程式 她們最大的差別在哪裡
      請各位前輩幫我釐清一下這個觀念 感恩唷~
    2009年4月13日 上午 05:47

解答

  • From MSDN:

    Visual Studio .NET 設計環境使用這個方法,來開始進行用於表單或為另一個元件所使用之元件的初始化。EndInit 方法會結束初始化。使用 BeginInitEndInit 方法,防止控制項在完全初始化之前被使用。


    小人物一枚。
    • 已標示為解答 VictorChen 2009年4月13日 上午 07:35
    2009年4月13日 上午 07:33
    版主

所有回覆

  • From MSDN:

    Visual Studio .NET 設計環境使用這個方法,來開始進行用於表單或為另一個元件所使用之元件的初始化。EndInit 方法會結束初始化。使用 BeginInitEndInit 方法,防止控制項在完全初始化之前被使用。


    小人物一枚。
    • 已標示為解答 VictorChen 2009年4月13日 上午 07:35
    2009年4月13日 上午 07:33
    版主
  • 謝謝唷 我懂了~
    2009年4月13日 上午 07:35