[ 元件(Component)、控制像(Control)、容器(Container)、站台(Site) ]

  • 在 .NET Framework 中,元件是實作 System.ComponentModel.IComponent 介面的類別,或是從實作 IComponent 之類別直接或間接衍生的類別。 
  • 控制項是一種提供 (或啟用) 使用者介面 (UI) 能力的元件。 .NET Framework 為控制項提供了兩個基底類別:一個是用戶端 Windows Form 控制項 (System.Windows.Forms.Control),另一個是 ASP.NET 伺服器控制項(System.Web.UI.Control)。 .NET Framework 類別庫中的所有控制項都是從這兩個類別直接或間接衍生。
    System.Windows.Forms.Control 是衍生自 Component 而且本身提供 UI 功能。 System.Web.UI.Control 會實作 IComponent,而且會提供很容易在上面加入 UI 功能的基礎結構。
  • 容器是實作 System.ComponentModel.IContainer 介面的類別,或者從實作這個介面之類別衍生的類別。 容器在邏輯上可包含一個或多個被稱為容器子元件的元件。
  • 站台是實作 System.ComponentModel.ISite 介面的類別,或者從實作這個介面之類別衍生的類別。 站台是由容器提供,用來管理其子元件並且與它們通訊。 通常,一個容器和一個站台會實作為一個單元。
  • .NET Framework 中的元件有一個重要功能,那就是它們是可設計的,這表示身為元件的類別可用於快速應用程式開發 (RAD) 環境中,例如 Visual Studio。 您可以將元件加入至 Visual Studio 的工具箱、可將其拖放到表單上,也可以在設計介面上進行操作。
  • 每個控制項都是一個元件,但每個元件不一定是控制項。
  • Reference:類別、元件和控制項的比較 - MSDN 

 

[ 數據集合 ]

 

[ Setup Project ]


 [ Component: BackgroundWorker ]

  • 傳遞參數:
    1. 假設要傳遞字串 s
    2. 啟動工作並將參數 s 傳給DoWork:BackgroundWorker1.RunWorkerAsync(s)
    3. 在DoWork事件中接收參數(字串s):Dim s As String = e.Argument
    4. 在DoWork事件中, 將要給 RunWorkerCompleted 事件的參數傳出:e.Result = s
    5. 在 RunWorkerCompleted 事件中接收 DoWork 送出的參數: Dim s As String = e.Result

    Sub BackgroundWorker1_Start()
      Dim s As String = "123"
      BackgroundWorker1.RunWorkerAsync(s)
    End Sub
    Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
      Dim s As String = e.Argument
      e.Result = s & "789"
    End Sub
    Private Sub BackgroundWorker1_RunWorkerCompleted(ByVal sender As System.Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles BackgroundWorker1.RunWorkerCompleted
      Dim s As String = e.Result
    End Sub

  •  

 [ 以系統管理員權限啟動 ] 

 

 [ Windows服務控制元件 ] 

 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 jsky 的頭像
    jsky

    jsky手札 ~ 走走停停

    jsky 發表在 痞客邦 留言(0) 人氣()