Share via


方法: Windows フォーム BindingNavigator コントロールに [Load]、[Save]、[Cancel] の各ボタンを追加する

BindingNavigator コントロールは、データにバインドされたフォーム上のコントロールを移動および操作するために使用される、特殊な用途の ToolStrip コントロールです。

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

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

BindingNavigator コンポーネントに、読み込み、保存、およびキャンセルの各ボタンを追加する

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

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

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

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

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

  6. デザイナー アクション グリフ (Small black arrow) をクリックして、[BindingNavigator タスク] ダイアログを表示し、[アイテムの編集] を選択します。

    項目コレクション エディターが表示されます。

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

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

    2. ボタンの Name プロパティを、LoadButtonSaveButton、および CancelButton にそれぞれ設定します。

    3. 各ボタンの Text プロパティを、LoadSaveCancel にそれぞれ設定します。

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

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

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

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

  10. 前の手順で作成した LoadToolStripButtonClick イベントのイベント ハンドラーを作成し、その中にこのデータ読み込みコードを移動します。

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

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

    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 コンポーネントに [Save] ボタンが既に存在していても、Windows フォーム デザイナーによってコードが生成されていないことがあります。 その場合は、ToolStrip 上にまったく新しいボタンを作成するのではなく、そのボタンの Click イベント ハンドラー内に上記のコードを配置できます。 ただし、ボタンは既定で無効になっているので、ボタンの Enabled プロパティを true に設定して、ボタンが正しく機能するようにする必要があります。

  12. 前の手順で作成した CancelToolStripButtonClick イベントのイベント ハンドラーを作成し、表示されるデータ レコードに対する変更を取り消すコードを記述します。

    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 メソッドのスコープは、データの行です。 次のレコードに移動する前に、個々のレコードの表示中に行ったすべての変更を保存してください。

関連項目