共用方式為


建立支援簡單資料繫結的 .NET Framework Windows Forms 使用者控制項

注意

資料集和相關類別是 2000 年代初的舊版 .NET Framework 技術,可讓應用程式在應用程式與資料庫中斷連線時使用記憶體中的資料。 它們特別適用於可讓使用者修改資料並將變更保存回資料庫的應用程式。 雖然已證明資料集是非常成功的技術,但建議新的 .NET 應用程式使用 Entity Framework Core。 Entity Framework 提供更自然的方式,將表格式資料作為物件模型使用,而且具有更簡單的程式設計介面。

在 Windows 應用程式的表單上顯示資料時,您可以從 [工具箱] 中選擇現有控制項;或者,如果應用程式需要標準控制項中未提供的功能,您也可以撰寫自訂控制項。 這個逐步解說顯示如何建立可實作 DefaultBindingPropertyAttribute 的控制項。 可實作 DefaultBindingPropertyAttribute 的控制項可以包含一個可繫結至資料的屬性。 這類控制項類似 TextBoxCheckBox

如需控制項製作的詳細資訊,請參閱在設計階段開發 Windows Form 控制項

製作用於資料繫結案例的控制項時,您應實作下列其中一個資料繫結屬性:

資料繫結屬性使用方式
對顯示資料之單一資料行 (或屬性) 的簡單控制項 (如 DefaultBindingPropertyAttribute),實作 TextBox (這個逐步解說頁面會描述此流程)。
對顯示資料之清單 (或資料表) 的控制項 (如 ComplexBindingPropertiesAttribute),實作 DataGridView 如需詳細資訊,請參閱建立支援複雜資料繫結的 Windows Forms 使用者控制項
對顯示資料之清單 (或資料表) 但也需要呈現單一資料行或屬性的控制項 (如 LookupBindingPropertiesAttribute),實作 ComboBox。 如需詳細資訊,請參閱建立支援查閱資料繫結的 Windows Forms 使用者控制項 (部分機器翻譯)。

這個逐步解說會建立簡單控制項,以顯示來自資料表中單一資料行的資料。 此範例使用 Northwind 範例資料庫中 Phone 資料表的 Customers 資料行。 透過使用 MaskedTextBox 並設定電話號碼的遮罩,簡單使用者控制項會以標準電話號碼格式顯示客戶的電話號碼。

在這個逐步解說期間,您將了解如何:

  • 建立新的 Windows Forms 應用程式 (.NET Framework)

  • 將新的 [使用者控制項] 新增至您的專案。

  • 透過視覺化方式設計使用者控制項。

  • 實作 DefaultBindingProperty 屬性。

  • 利用資料來源組態精靈建立資料集。

  • 在 [資料來源] 視窗中設定 [電話] 資料行,以使用新的控制項。

  • 建立表單以顯示新控制項中的資料。

必要條件

若要完成本教學課程,您需要在 Visual Studio 中安裝 .NET 桌面開發資料儲存和處理工作負載。 若要安裝,請開啟 Visual Studio 安裝程式並選擇您要修改 Visual Studio 版本旁的 [修正] (或 [其他]>[修改])。 請參閱修改 Visual Studio

本逐步解說會使用 SQL Server Express LocalDB 和 Northwind 範例資料庫。

  1. 如果您沒有 SQL Server Express LocalDB,請從 SQL Server Express 下載頁面或透過 Visual Studio 安裝程式進行安裝。 在 Visual Studio 安裝程式中,您可以將 SQL Server Express LocalDB 安裝為資料儲存和處理工作負載的一部分,或安裝為個別元件。

  2. 請遵循下列步驟安裝 Northwind 範例資料庫:

    1. 在 Visual Studio 中,開啟 [SQL Server 物件總管]視窗。 (SQL Server 物件總管會安裝為 Visual Studio 安裝程式中的 [資料儲存和處理] 工作負載的一部分。)展開 [SQL Server]節點。 以滑鼠右鍵按一下您的 LocalDB 執行個體,然後選取 [新增查詢]

      查詢編輯器視窗會隨即開啟。

    2. Northwind Transact-SQL 指令碼複製到剪貼簿。 此 T-SQL 指令碼會從頭開始建立 Northwind 資料庫,並將資料填入其中。

    3. 將 T-SQL 指令碼貼入查詢編輯器中,然後選擇 [執行] 按鈕。

      查詢很快就會完成執行,並建立 Northwind 資料庫。

建立 Windows Forms 應用程式

第一步是建立 Windows Forms 應用程式 (.NET Framework)

  1. 在 Visual Studio 的 [檔案] 功能表上,選取 [新增]>[專案]

  2. 在左側窗格中展開 Visual C#Visual Basic,然後選取 [Windows 桌面]

  3. 在中間窗格中,選取 [Windows Forms 應用程式] 專案類型。

  4. 將專案命名為 SimpleControlWalkthrough,然後選擇 [確定]

    隨即建立 SimpleControlWalkthrough 專案,並將其新增至 [方案總管]

將使用者控制項新增至專案

本逐步解說會從使用者控制項建立簡單的資料可繫結控制項。 將使用者控制項項目新增至 SimpleControlWalkthrough 專案:

  1. 從 [專案] 功能表中,選擇 [新增使用者控制項]

  2. 在 [名稱] 區域中鍵入 PhoneNumberBox,然後按一下 [新增]

    [PhoneNumberBox] 控制項會新增至 [方案總管],並且可在設計工具中開啟。

設計 PhoneNumberBox 控制項

這個逐步解說會從現有 MaskedTextBox 擴充,以建立 PhoneNumberBox 控制項:

  1. MaskedTextBox 從 [工具箱] 拖曳至使用者控制項的設計介面。

  2. MaskedTextBox 上選取您剛剛拖曳的智慧標籤,並選擇 [設定遮罩]

  3. 在 [輸入遮罩] 對話方塊中,選取 [電話號碼],然後按一下 [確定] 設定遮罩。

新增必要的資料繫結屬性

針對支援資料繫結的簡單控制項,實作 DefaultBindingPropertyAttribute

  1. PhoneNumberBox 控制項切換至程式碼檢視。 (在 [檢視] 功能表上,選擇 [程式碼]。)

  2. PhoneNumberBox 中的程式碼取代為下列內容:

    using System.Windows.Forms;
    
    namespace CS
    {
        [System.ComponentModel.DefaultBindingProperty("PhoneNumber")]
        public partial class PhoneNumberBox : UserControl
        {
            public string PhoneNumber
            {
                get{ return maskedTextBox1.Text; }
                set{ maskedTextBox1.Text = value; }
            }
    
            public PhoneNumberBox()
            {
                InitializeComponent();
            }
        }
    }
    
  3. 從 [ 建置 ] 功能表中,選擇 [ 建置方案]。

從您的資料庫建立資料來源

此步驟使用 [資料來源組態精靈],根據 Northwind 範例資料庫中的 Customers 資料表建立資料來源。 您必須具有 Northwind 範例資料庫的存取權,才能建立連接。 如需設定 Northwind 範例資料庫的相關資訊,請參閱如何:安裝範例資料庫

  1. 若要開啟 [資料來源] 視窗,請按一下 [資料] 功能表上的 [顯示資料來源]

  2. 在 [資料來源] 視窗中,選取 [新增新資料來源],以啟動 [資料來源組態精靈]

  3. 在 [選擇資料來源類型] 頁面上,選取 [資料庫],然後按一下 [下一步]

  4. 在 [選擇您的資料連線] 頁面上,執行下列其中一項:

    • 如果下拉式清單中有提供 Northwind 範例資料庫的資料連接,請選取這個資料連接。

    • 選取 [新增連線] 啟動 [新增/修改連線] 對話方塊。

  5. 如果資料庫需要密碼,請選取選項來加入敏感性資料,然後按一下 [下一步]

  6. 將連接字串儲存到應用程式組態檔頁面上,按 [下一步]

  7. 展開 [選擇您的資料庫物件] 頁面上的 [資料表] 節點。

  8. 選取 Customers 資料表,然後按一下 [完成]

    NorthwindDataSet 會新增至您的專案,且 Customers 資料表會出現在 [資料來源] 視窗中。

設定 Phone 資料行使用 PhoneNumberBox 控制項

在 [資料來源] 視窗中,您可以設定在將項目拖曳至表單之前建立控制項:

  1. 在設計工具中,開啟 Form1

  2. 在 [資料來源] 視窗中,展開 [客戶] 節點。

  3. 按一下 [客戶] 節點上的下拉式清單箭頭,並從控制項清單中選擇 [詳細資料]

  4. 按一下 [電話] 資料行上的下拉式清單箭頭,並選擇 [自訂]

  5. 在 [資料 UI 自訂選項] 對話方塊中,從 [相關聯的控制項] 清單中選取 PhoneNumberBox

  6. 按一下 [電話] 資料行上的下拉式清單箭頭,並選擇 [PhoneNumberBox]

控制項加入至表單

將項目從 [資料來源] 視窗拖曳至表單,以建立資料繫結控制項。

若要在表單上建立資料繫結控制項,請將 [Customers] 主節點從 [資料來源] 視窗拖曳至表單,並確認使用 PhoneNumberBox 控制項來顯示 Phone 資料行中的資料。

會在表單上顯示具有描述性的資料繫結控制項,以及巡覽記錄的工具區域 (BindingNavigator)。 NorthwindDataSet、CustomersTableAdapter、BindingSourceBindingNavigator 會顯示在元件匣中。

執行應用程式

F5 執行應用程式。

下一步

根據應用程式的需求,在建立支援資料繫結程序的控制項之後,可能會有幾個想要執行的步驟。 一些一般後續步驟包括: