BindingNavigator コントロールは、データにバインドされたフォーム上のコントロールの移動と操作を目的とした特殊な目的のToolStrip コントロールです。
ToolStrip コントロールであるため、BindingNavigator コンポーネントを簡単に変更して、ユーザーの追加または代替コマンドを含めることができます。
次の手順では、 TextBox コントロールがデータにバインドされ、フォームに追加された ToolStrip コントロールが、読み込み、保存、キャンセルの各ボタンを含むように変更されます。
BindingNavigator コンポーネントに読み込み、保存、取り消しボタンを追加する
Visual Studio で、フォームに TextBox コントロールを追加します。
データ ソースにバインドされている BindingSourceにバインドします。 この例では、 BindingSource はデータベースにバインドされます。
データセットとテーブル アダプターが生成されたら、 BindingNavigator コントロールをフォームにドラッグします。
BindingNavigator コントロールのBindingSource プロパティを、コントロールにバインドされているフォームのBindingSourceに設定します。
BindingNavigator コントロールを選択します。
デザイナー アクション グリフ (
) をクリックして、 BindingNavigator の [タスク] ダイアログが表示され、[ アイテムの編集] を選択します。
アイテム コレクション エディターが表示されます。
アイテム コレクション エディターで、次の手順を実行します。
適切な種類のToolStripSeparatorを選択し、[追加] ボタンをクリックして、ToolStripButtonと 3 つのToolStripItem項目を追加します。
ボタンの Name プロパティをそれぞれ LoadButton、 SaveButton、 CancelButton に設定します。
ボタンの Text プロパティを [読み込み]、[ 保存]、[ キャンセル] に設定します。
各ボタンの DisplayStyle プロパティを Text に設定 します。 または、このプロパティを Image または ImageAndText に設定し、 Image プロパティに表示するイメージを設定することもできます。
ダイアログ ボックスを閉じるには [OK] をクリックします。 ボタンが 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 フォーム デザイナーによってコードが生成されていません。 この場合、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 メソッドのスコープは、データの行です。 次のレコードに移動する前に、個々のレコードを表示しているときに行った変更を保存します。
こちらも参照ください
.NET Desktop feedback