方法 : DataRepeater の項目の追加と削除を無効にする (Visual Studio)
既定では、ユーザーは DataRepeater コントロール内の項目を追加および削除できます。ユーザーは、DataRepeaterItem にフォーカスがあるときに Ctrl キーを押しながら N キーを押すか、BindingNavigator コントロールの AddNewItem ボタンをクリックして新しい項目を追加できます。ユーザーは、DataRepeaterItem にフォーカスがあるときに Del キーを押すか、BindingNavigator コントロールの DeleteItem ボタンをクリックして項目を削除できます。
追加と削除の機能は、デザイン時または実行時に無効にできます。
デザイン時に追加と削除を無効にするには
Windows フォーム デザイナーで、DataRepeater コントロールを選択します。
[!メモ]
コントロールの下部セクションを選択する必要があります。項目テンプレート セクションを選択している場合は、異なるプロパティ一式が表示されます。
[プロパティ] ウィンドウで、AllowUserToAddItems プロパティを False に設定します。
AllowUserToDeleteItems プロパティを False に設定します。
Windows フォーム デザイナーで、BindingNavigator コントロールを選択し、AddNewItem ボタン (正符号が表示されているボタン) をクリックします。
[プロパティ] ウィンドウで、Enabled プロパティを False に設定します。
Windows フォーム デザイナーで、BindingNavigator コントロールを選択し、DeleteItem ボタン (赤い X が表示されているボタン) をクリックします。
[プロパティ] ウィンドウで、Enabled プロパティを False に設定します。
コンポーネント トレイで、DataRepeater がバインドされている BindingSource を選択します。
[プロパティ] ウィンドウで、AllowNew プロパティを False に設定します。
Windows フォーム デザイナーで、DeleteItem ボタンをダブルクリックしてコード エディターを開きます。
[イベント] ボックスの BindingNavigatorDeleteItem_EnabledChanged イベントをクリックします。
BindingNavigatorDeleteItem_EnabledChanged イベント ハンドラーに次のコードを追加します。
If BindingNavigatorDeleteItem.Enabled = True Then BindingNavigatorDeleteItem.Enabled = False End If
if (bindingNavigatorDeleteItem.Enabled == true) { bindingNavigatorDeleteItem.Enabled = false; }
[!メモ]
現在のレコードが変更されるたびに BindingSource によって DeleteItem ボタンが有効になるため、この手順が必要となります。
実行時に追加と削除を無効にするには
Windows フォーム デザイナーで、フォームをダブルクリックしてコード エディターを開きます。
Form_Load イベントに次のコードを追加します。
DataRepeater1.AllowUserToAddItems = False DataRepeater1.AllowUserToDeleteItems = False BindingNavigatorAddNewItem.Enabled = False ordersBindingSource.AllowNew = False BindingNavigatorDeleteItem.Enabled = False
dataRepeater1.AllowUserToAddItems = false; dataRepeater1.AllowUserToDeleteItems = false; bindingNavigatorAddNewItem.Enabled = false; ordersBindingSource.AllowNew = false; bindingNavigatorDeleteItem.Enabled = false;
BindingNavigatorDeleteItem_EnabledChanged イベント ハンドラーに次のコードを追加します。
If BindingNavigatorDeleteItem.Enabled = True Then BindingNavigatorDeleteItem.Enabled = False End If
if (bindingNavigatorDeleteItem.Enabled == true) { bindingNavigatorDeleteItem.Enabled = false; }
[!メモ]
現在のレコードが変更されるたびに BindingSource によって DeleteItem ボタンが有効になるため、この手順が必要となります。
参照
処理手順
DataRepeater コントロールのトラブルシューティング (Visual Studio)