如何:將載入、儲存和取消按鈕加入至 Windows Form BindingNavigator 控制項
BindingNavigator 控制項是特殊用途的 ToolStrip 控制項,用於巡覽及操作繫結至資料之表單上的控制項。
因為這是 ToolStrip 控制項,因此可輕鬆地修改 BindingNavigator 元件,以包含使用者的其他或替代命令。
在下列程式中,TextBox 控制項會繫結至資料,而新增至表單的 ToolStrip 控制項會經過修改以包含載入、儲存和取消按鈕。
將載入、儲存和取消按鈕新增至 BindingNavigator 元件
在 Visual Studio 中,將 TextBox 控制項新增至表單。
將它繫結至資料來源所繫結的 BindingSource。 在此範例中,BindingSource 會繫結至資料庫。
產生資料集和資料表配接器之後,將 BindingNavigator 控制項拖曳至表單。
將 BindingNavigator 控制項的 BindingSource 屬性設定為繫結至控制項之表單上的 BindingSource。
選取 BindingNavigator 控制項。
按一下設計工具動作圖像 (),[BindingNavigator 工作] 對話方塊隨即出現,然後選取 [編輯項目]。
[項目集合編輯器] 隨即出現。
在 [項目集合編輯器] 中,完成下列各項:
選取適當的 ToolStripSeparator 類型,然後按一下 [新增]ToolStripButton 按鈕,以新增 ToolStripItem 和三個 項目。
將按鈕的 Name 屬性分別設定為 [LoadButton]、[SaveButton] 和 [CancelButton]。
將按鈕的 Text 屬性設定為 [Load]、[Save]和 [Cancel]。
將每個按鈕的 DisplayStyle 屬性設定為 [Text]。 或者,您可以將此屬性設定為 [Image] 或 [ImageAndText],並將影像設定為顯示在 Image 屬性中。
按一下 [確定] ,關閉對話方塊。 按鈕會新增至 ToolStrip。
以滑鼠右鍵按一下表單,然後選擇 [檢視程式碼]。
在程式碼編輯器中,尋找將可將資料載入資料表配接器的程式碼行。 當您在步驟 2 中設定資料繫結時,就會產生此程式碼。 程式碼應如下所示:
TableAdapterName.Fill(DataSetName.TableName)
。 它很可能在表單的 Load 事件中。針對您稍早建立的 Click 的 ToolStripButton 事件建立事件處理常式,並將此資料載入程式碼移至其中。
您的程式碼現在看起來應該如下所示:
Private Sub LoadButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LoadButton.Click TableAdapterName.Fill(DataSetName.TableName) End Sub
private void LoadButton_Click(System.Object sender, System.EventArgs e) { TableAdapterName.Fill(DataSetName.TableName); }
針對您稍早建立的 Click 的 ToolStripButton 事件建立事件處理常式,並撰寫程式碼來更新控制項所繫結資料表中的資料。
Private Sub SaveButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SaveButton.Click TableAdapterName.Update(DataSetName.TableName) End Sub
private void SaveButton_Click(System.Object sender, System.EventArgs e) { TableAdapterName.Update(DataSetName.TableName); }
注意
在某些情況下,BindingNavigator 元件已經有 [儲存] 按鈕,但 Windows Form 設計工具尚未產生任何程式碼。 在此情況下,您可將上述程式碼放在該按鈕的 Click 事件處理常式中,而不是在 ToolStrip 上建立全新的按鈕。 不過,按鈕預設會停用,因此您必須將按鈕的 Enabled 屬性設定為
true
,讓按鈕正常運作。針對您稍早建立的 Click 的 ToolStripButton 事件建立事件處理常式,並撰寫程式碼來取消所顯示資料記錄的任何變更。
Private Sub CancelButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CancelButton.Click BindingSourceName.CancelEdit() End Sub
private void CancelButton_Click(System.Object sender, System.EventArgs e) { BindingSourceName.CancelEdit(); }
注意
CancelEdit 方法的範圍是資料列。 在瀏覽至下一筆記錄之前,請先儲存您在檢視該個別記錄時所做的任何變更。