ここから本文です

DataGridViewの更新方法についてアドバイスを下さい。

hol********さん

2011/7/1215:53:20

DataGridViewの更新方法についてアドバイスを下さい。

使用言語:VB.net(VS2010)
開発環境OS:Vindows7
実行環境OS:WindowsXP
データベース:SQL Server2005
システム形態:クライアントサーバー

現状:
Form1にはDataGridview、BindingNavigator、Buttonがあります。
DataGridViewのDataSourceプロパティにBindingSourceを指定しています。
BindingSourceのDataSourceプロパティにはDataSetを指定して、DataMenberプロパティには、DataTableを指定しています。Form1では編集はできません。

DataGridViewのレコードを1つ選択し、Buttonをクリックすると、Form2が開き、そのレコードの内容が単票形式で表示されます。
フォーム2で内容を更新し、Form2にあるButtonをクリックすると、SQL文が発行され、データベースが更新されます。
その後、Form2でイベントを発生させ、Form1に知らせます。
Form1ではBindingSourceのPositionプロパティを変数に記憶し、TableAdapterを利用して、全データを再取得します。
その後、BindingSourceのPositionプロパティに先ほど記憶した変数の値を指定しています。

このとき、カレントレコードが現在見えている行の上から3番目にあるとすると、データを更新した後は、現在見えている部分の一番下になってしまいます。カレントレコード自体は変わっていません。

これを、更新した後も、上から3番目にすることはできるのでしょうか?
それとも、この方法とは全く別の方法で、編集後も、同じ場所にカレントレコードを表示することができるのでしょうか?
教えて下さい。

DataGridView,BindingSource,Form1,Form2,SQL Server 2005,スクロール位置,処理

閲覧数:
3,721
回答数:
1
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

edi********さん

2011/7/1702:59:59

DataGridView.FirstDisplayedScrollingRowIndexプロパティで、表示されている部分の先頭行の位置を取得・設定できます。
処理前の値を変数に入れておき、処理後に値を戻してやればスクロール位置の復元が可能です。

質問した人からのコメント

2011/7/18 11:31:27

ありがとうございました。このようなプロパティがあったのですね。勉強になりました。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる