方法 : Windows フォーム BindingNavigator コントロールに [Load]、[Save]、[Cancel] の各ボタンを追加する
更新 : 2007 年 11 月
BindingNavigator コントロールは、フォーム上のデータ バインド コントロールの移動や操作に用途が特化された ToolStrip コントロールです。
BindingNavigator コンポーネントは ToolStrip コントロールであるため、簡単に変更でき、ユーザー向けの追加コマンドや代替コマンドを含めることができます。
次の手順では、TextBox コントロールをデータにバインドし、フォームに追加した ToolStrip コントロールを変更して、[Load]、[Save]、[Cancel] の各ボタンを追加します。
BindingNavigator コンポーネントに [Load] ボタン、[Save] ボタン、および [Cancel] ボタンを追加するには
フォームに TextBox コントロールを追加します。
このコントロールを、データ ソースにバインドされている BindingSource にバインドします。この例では、BindingSource はデータベースにバインドされています。
データセットとテーブル アダプタが生成されたら、BindingNavigator コントロールをフォームにドラッグします。
BindingNavigator コントロールの BindingSource プロパティを、コントロールにバインドされているフォーム上の BindingSource に設定します。
BindingNavigator コントロールを選択します。
スマート タグ グリフ () をクリックして [BindingNavigator タスク] ダイアログ ボックスを表示し、[項目の編集] をクリックします。
項目コレクション エディタが表示されます。
項目コレクション エディタで、次の手順を実行します。
適切な型の ToolStripItem を選択し、[追加] をクリックして、ToolStripSeparator と 3 つの ToolStripButton 項目を追加します。
各ボタンの Name プロパティを、それぞれ LoadButton、SaveButton、CancelButton に設定します。
各ボタンの Text プロパティを、それぞれ Load、Save、Cancel に設定します。
各ボタンの DisplayStyle プロパティを Text に設定します。または、このプロパティを Image または ImageAndText に設定し、Image プロパティでイメージが表示されるように設定することもできます。
[OK] をクリックしてダイアログ ボックスを閉じます。各ボタンが ToolStrip に追加されます。
フォームを右クリックし、[コードの表示] をクリックします。
コード エディタで、テーブル アダプタにデータを読み込むコード行を見つけます。このコードは、手順 2. でデータ バインディングを設定したときに生成されます。たとえば、TableAdapterName.Fill(DataSetName.TableName) のようになります。このコードは、一般にフォームの Load イベントに含まれます。
作成済みの [Load]ToolStripButton の Click イベントのイベント ハンドラを作成し、データ読み込みコードをこのハンドラに移動します。
コードは次のようになります。
[Visual Basic]
Private Sub LoadButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LoadButton.Click TableAdapterName.Fill(DataSetName.TableName) End Sub
[C#]
private void LoadButton_Click(System.Object sender, System.EventArgs e) { TableAdapterName.Fill(DataSetName.TableName); }
作成済みの [Save]ToolStripButton の Click イベントのイベント ハンドラを作成し、コントロールがバインドされている、テーブル内のデータを更新するコードを記述します。
[Visual Basic]
Private Sub SaveButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SaveButton.Click TableAdapterName.Update(DataSetName.TableName) End Sub
[C#]
private void SaveButton_Click(System.Object sender, System.EventArgs e) { TableAdapterName.Update(DataSetName.TableName); }
メモ : BindingNavigator コンポーネントには、既に [Save] ボタンが設定されている場合もありますが、Windows フォーム デザイナによってコードは生成されていません。このような場合は、ToolStrip で新しいボタンを作成するのではなく、既存のボタンの Click イベント ハンドラに前述のコードを配置できます。ただし、ボタンは既定で無効になっているため、ボタンの Enabled プロパティを true に設定し、ボタンが適切に機能するようにします。
作成済みの[Cancel]ToolStripButton の Click イベントのイベント ハンドラを作成し、表示されているデータ レコードに対する変更をキャンセルするコードを記述します。
[Visual Basic]
Private Sub CancelButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CancelButton.Click BindingSourceName.CancelEdit() End Sub
[C#]
private void CancelButton_Click(System.Object sender, System.EventArgs e) { BindingSourceName.CancelEdit(); }
メモ : CancelEdit メソッドのスコープはデータ行です。個々のレコードの表示中に行った変更は、次のレコードに移動する前に保存してください。