DataGridの一番下の新しい行(*行)が表示されないようにする新しい行の追加、編集、削除を禁止する新しい行の追加、編集、削除をすべて禁止するDataGridにおいて新しい行の追加、編集、削除をすべて禁止するには、DataGrid.ReadOnlyプロパティをTrueにします。新しい行の追加を禁止すると、DataGridの一番下に表示される新しい行(*行)が表示されなくなります。つまり、DataGrid.ReadOnlyプロパティをTrueにすることで、*行を表示しないように出来ます。
[VB.NET]
DataGrid1.ReadOnly = True
[C#]
DataGrid1.ReadOnly = true;
新しい行の追加、編集、削除を個別に禁止するDataGrid.ReadOnlyプロパティをTrueにすると、追加、編集、削除のすべてが禁止されてしまいます。例えば追加のみを禁止にしたいときには、DataViewクラスのAllowNewプロパティをFalseにします。同様に編集、削除を個別に禁止するには、DataViewクラスのAllowEditプロパティ、及びDataViewクラスのAllowDeleteプロパティをFalseにします。 次に新しい行の追加のみを禁止する例を示します。 [VB.NET] 'CurrencyManagerを取得する 'ここではDataGrid1.DataSourceに 'DataTableオブジェクトが設定されているものとする Dim cm As CurrencyManager cm = CType( _ DataGrid1.BindingContext( _ DataGrid1.DataSource, DataGrid1.DataMember), _ CurrencyManager) 'DataViewを取得する Dim dv As DataView = CType(cm.List, DataView) '新しい行の追加を禁止する dv.AllowNew = False [C#] //CurrencyManagerを取得する //ここではDataGrid1.DataSourceに //DataTableオブジェクトが設定されているものとする CurrencyManager cm = (CurrencyManager) DataGrid1.BindingContext[ DataGrid1.DataSource, DataGrid1.DataMember]; //DataViewを取得する DataView dv = (DataView) cm.List; //新しい行の追加を禁止する dv.AllowNew = false; 補足:CurrencyManager クラスには次のようにDataGridコントロールのNavigateイベントでAllowNewプロパティをFalseにする例が載っています。DataGrid.DataSourceにDataSetが設定されている場合に参考になります。 [VB.NET] Private Sub Grid_Navigate(sender As Object, e As NavigateEventArgs) If e.Forward Then Dim ds As DataSet = CType(grid.DataSource, DataSet) Dim cm As CurrencyManager = _ CType(BindingContext(ds,"Customers.CustOrders"), CurrencyManager) 'AllowNewプロパティを設定するため、IListをDataViewにキャストする Dim dv As DataView = CType(cm.List, DataView) dv.AllowNew = false End If End Sub [C#] private void Grid_Navigate(object sender, NavigateEventArgs e) { if (e.Forward ) { DataSet ds = (DataSet) grid.DataSource; CurrencyManager cm = (CurrencyManager)BindingContext[ds,"Customers.CustOrders"]; //AllowNewプロパティを設定するため、IListをDataViewにキャストする DataView dv = (DataView) cm.List; dv.AllowNew = false; } } |
|
Copyright 2002-2008 DOBON!. All rights reserved.
|