次の方法で共有


方法: Windows フォーム BindingNavigator コントロールに [読み込み]、[保存]、[キャンセル] ボタンを追加する

BindingNavigator コントロールは、データにバインドされたフォーム上のコントロールの移動と操作を目的とした特殊な目的のToolStrip コントロールです。

ToolStrip コントロールであるため、BindingNavigator コンポーネントを簡単に変更して、ユーザーの追加または代替コマンドを含めることができます。

次の手順では、 TextBox コントロールがデータにバインドされ、フォームに追加された ToolStrip コントロールが、読み込み、保存、キャンセルの各ボタンを含むように変更されます。

BindingNavigator コンポーネントに読み込み、保存、取り消しボタンを追加する

  1. Visual Studio で、フォームに TextBox コントロールを追加します。

  2. データ ソースにバインドされている BindingSourceにバインドします。 この例では、 BindingSource はデータベースにバインドされます。

  3. データセットとテーブル アダプターが生成されたら、 BindingNavigator コントロールをフォームにドラッグします。

  4. BindingNavigator コントロールのBindingSource プロパティを、コントロールにバインドされているフォームのBindingSourceに設定します。

  5. BindingNavigator コントロールを選択します。

  6. デザイナー アクション グリフ (小さい黒い矢印) をクリックして、 BindingNavigator の [タスク] ダイアログが表示され、[ アイテムの編集] を選択します。

    アイテム コレクション エディターが表示されます。

  7. アイテム コレクション エディターで、次の手順を実行します。

    1. 適切な種類のToolStripSeparatorを選択し、[追加] ボタンをクリックして、ToolStripButtonと 3 つのToolStripItem項目を追加します。

    2. ボタンの Name プロパティをそれぞれ LoadButtonSaveButtonCancelButton に設定します。

    3. ボタンの Text プロパティを [読み込み]、[ 保存]、[ キャンセル] に設定します。

    4. 各ボタンの DisplayStyle プロパティを Text に設定 します。 または、このプロパティを Image または ImageAndText に設定し、 Image プロパティに表示するイメージを設定することもできます。

    5. ダイアログ ボックスを閉じるには [OK] をクリックします。 ボタンが ToolStripに追加されます。

  8. フォームを右クリックし、[コードの表示] を選択します。

  9. コード エディターで、テーブル アダプターにデータを読み込むコード行を見つけます。 このコードは、手順 2 でデータ バインディングを設定したときに生成されました。 コードは次のようになります: TableAdapterName.Fill(DataSetName.TableName)。 ほとんどの場合、フォームの Load イベントに含まれます。

  10. 先ほど作成した ClickToolStripButton イベントのイベント ハンドラーを作成し、このデータ読み込みコードをそれに移動します。

    コードは次のようになります。

    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);
    }
    
  11. 前に作成した ClickToolStripButton イベントのイベント ハンドラーを作成し、コントロールがバインドされているテーブル内のデータを更新するコードを記述します。

    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 に設定して、ボタン機能を正しく設定する必要があります。

  12. 前に作成した 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 メソッドのスコープは、データの行です。 次のレコードに移動する前に、個々のレコードを表示しているときに行った変更を保存します。

こちらも参照ください