|
分類:[C#]
2009/08/10(Mon) 22:25:16 編集(投稿者)
お世話になります。 現在、MDBテーブルのエントリ画面を作成しています。 画面上半分はDataGridViewを配置、下半分に詳細入力用のコントロール郡 (テキストボックスやコンボボックスなど)を配置した画面構成にしています。
DataGridViewと詳細入力用コントロールはbindingSourceを介してデータセット に接続しています。
ここで、データグリッドであるセルを選択した状態で「複製追加」 というボタンを押すと、新規レコードを作成して、そのレコードに選択していた レコードの内容を初期値でセットする、という機能を追加したいのです。
ためしに以下のようにソースを書いてみました。
//現在の選択中のレコードを取得 DataRowView drv = (DataRowView)dataGridView1.CurrentRow.DataBoundItem; //新規レコードを作成 bindingSource1.AddNew(); //新規レコードを取得 DataRowView r = (DataRowView)this.bindingSource1.Current; //新規レコードに初期選択レコードの内容をコピー for (int i = 0; i < drv.Row.ItemArray.Count(); i++) { r.Row.ItemArray[i]= drv.Row.ItemArray[i]; }
上記のような感じで値がコピーできないかなぁと思ったのですが。 実行時にエラーはでませんが、処理実行後に詳細編集用のコントロールに値がセット されません。
フィールド数が多いテーブルなどでは新規レコード作成時に他のレコードから複製 を作ってから編集を加えるほうが便利、ということもあり、是非とも実現したいのですが。
どのような方法で実装すればいいでしょうか。 ご教示のほど、よろしくお願いしますm(__)m。
|