|
.NET TIPS DataGridコントロールで行の追加/削除およびデータ編集を禁止するには?デジタルアドバンテージ2004/01/16 |
![]() |
|
|
|
デフォルトのDataGridコントロールでは、表示されている既存のデータをユーザーが編集でき、編集したデータはそのままDataGridコントロールに反映される。また、新しいデータを入力するための行(新規行)がグリッドの末尾に表示され、ここで入力したデータもそのままDataGridコントロールに追加される。
![]() |
||||||
| デフォルトのDataGridコントロール | ||||||
| デフォルトのDataGridコントロールでは、既存行で変更したデータはDataGridコントロールに反映され、新規行で入力したデータはDataGridコントロールに追加される。 | ||||||
|
しかし、実際のDataGridコントロールの利用では、ユーザーがデータを変更したり、追加したりできないようにして、表示専用にしたい場合があるだろう。そのような場合には、DataGridコントロールでの行の追加/削除およびデータ編集を禁止することができる。
![]() |
||||||
| 行の追加/削除およびデータ編集を禁止したDataGridコントロール | ||||||
| DataGridコントロールでは、行の追加/削除、データ編集を禁止することもできる。 | ||||||
|
上図のように、DataGridコントロールで行の追加/削除やデータ編集を禁止するには、DataGridコントロールのデータソースとして設定している、DataTableクラスのビューを表すDataViewクラス(System.Data名前空間)のオブジェクトの次の3つのプロパティをfalseに指定すればよい(いずれのプロパティもデフォルトはtrueになっている)。
- AllowNewプロパティ(新規行属性)
- AllowDeleteプロパティ(行削除属性)
- AllowEditプロパティ(データ編集属性)
これらのプロパティ設定を行う具体的なコードを次に示す。なお、このコードでは、DataGridコントロールのビューとして、DataTableクラス既定のDataViewオブジェクトであるDefaultViewプロパティを使っている。
|
|
| DataGridコントロールで行の追加/削除およびデータ編集を禁止するC#のプログラム | |
|
サンプル・プログラム(C#:dgallownew.cs、VB.NET:dgallownew.vb)のダウンロード
|
前述のDataViewクラスの3つのプロパティ設定をDataGridコントロールに反映させるためには、プロパティ設定したDataViewオブジェクトをDataGridコントロールのデータソース(DataSourceプロパティ)に指定しなければならない。これには、DataGridコントロールのSetDataBindingメソッドを使う(もちろんDataSourceプロパティに直接代入することもできるが、その場合DataMemberプロパティも同時に設定する必要がある)。
もしSetDataBindingメソッドで、DataGridコントロールのデータソース(第1パラメータ)にDataSetクラス(System.Data名前空間)のオブジェクトを指定した場合は、行の追加/削除やデータ編集を禁止するプロパティは使用できない(DataGridコントロールに反映されない)。これらのプロパティをDataGridコントロールに反映させるには、そのデータソースとして必ずDataViewクラスのオブジェクトを設定する必要がある。ただし、DataTableクラスのオブジェクトをデータソースに指定した場合には、そのDataTableクラスのDafaultViewプロパティがDataGridコントロールのビューとして使われるため、行の追加/削除やデータ編集を禁止するプロパティが設定可能となる。![]()
| カテゴリ:Windowsフォーム 処理対象:DataGridコントロール 使用ライブラリ:DataGridコントロール 使用ライブラリ:DataTableクラス(System.Data名前空間) 使用ライブラリ:DataViewクラス(System.Data名前空間) 使用ライブラリ:DataSetクラス(System.Data名前空間) |
| 「.NET TIPS」 |
TechTargetジャパン
- Kinectが切り開く“夢の近未来” (2012/2/2)
日本を含めた世界中でKinect for Windowsセンサー商用版とSDK正式版がリリース。未来のコンピューティングはどう変化するのか? - 3つの視点でネイティブと.NETの適材適所を考察 (2012/1/31)
アプリ開発は「ネイティブ」と「.NET」、どちらが最良? その問いには「適材適所」と答えるしかない。では、“適所”は一体どこかを考察する - SQL Azure Data Sync入門 (2012/1/30)
SQL Azure/SQL Serverデータベース間のデータ同期を簡単に実現するサービスとは? その仕組みや使用手順を解説 - Windows Phoneアプリ市場の現状を分析する (2012/1/27)
Windows Phone のアプリ・ストアに日々登録されている多種多様なアプリ。カテゴリ別のアプリ数は? 市場の現状を明らかにする
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -




