C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: DataGridViewの更新前の位置


(過去ログ 42 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■21902 / inTopicNo.1)  DataGridViewの更新前の位置
  
□投稿者/ ウーロン茶 (5回)-(2008/07/11(Fri) 16:20:53)

分類:[C#] 

21795の「常に最新のデータを反映するには」の質問をした者です。
>一定時間ごとにテーブルを読みにいって、
> データが更新されていれば最新データを取得して画面を更新する。
のアドバイスを頂いて実現はできましたが、新たな問題が発生しました。
更新が行われるとDataGridview内の行の位置が変わってしまうのです。
あらかじめ選択中のセルを覚えておき、
int X = tbl_suDataGridView.CurrentCellAddress.X;
int Y = tbl_suDataGridView.CurrentCellAddress.Y;
更新後にその位置に戻します。
tbl_suDataGridView.CurrentCell = tbl_suzuki_ImportDataGridView[X, Y];
ところが選択中のセルがDategridview内の一番下の行にスクロール移動されたような状態になります。
更新前と全く同じ位置をキープするにはどうしたら良いでしょうか。
引用返信 編集キー/
■21908 / inTopicNo.2)  Re[1]: DataGridViewの更新前の位置
□投稿者/ ロック (44回)-(2008/07/11(Fri) 17:18:14)
Selectedも指定してみては?
こんな感じ? tbl_suDataGridView.Rows[Y].Cells[X].Selected = true;


目的のセルは選択できるけど、スクロールバーの位置が更新前と違う
とか
データの増減で前回選択セルとズレが生じてしまうという事であれば
自分にはお手上げです。

引用返信 編集キー/
■21926 / inTopicNo.3)  Re[2]: DataGridViewの更新前の位置
□投稿者/ ウーロン茶 (6回)-(2008/07/11(Fri) 21:00:15)
No21908 (ロック さん) に返信
ご意見ありがとうございます。
残念ながらスクロールバーの位置がずれてしまいます。
引き続きもっと色々と調べてみます。
引用返信 編集キー/
■21934 / inTopicNo.4)  Re[3]: DataGridViewの更新前の位置
□投稿者/ ウーロン茶 (7回)-(2008/07/12(Sat) 01:43:42)
解決しました。
>一定時間ごとにテーブルを読みにいって、
> データが更新されていれば最新データを取得して画面を更新する。
このときスクロールバーが一番上に戻ってしまうので困っていたのですが、下記の方法で維持できるようになりました。
DataGridViewのScrollイベントを発生させ、
 private void tbl_suDataGridView_Scroll(object sender, ScrollEventArgs e)
 {
       if (e.ScrollOrientation == ScrollOrientation.VerticalScroll)
       {
             scnt = e.NewValue;     //前もって public int scnt; と定義してあります。
       }
 }
タイマーイベントの中で(一定時間更新のため)
 private void timer1_Tick(object sender, EventArgs e)
 {  
       tbl_suDataGridView.FirstDisplayedScrollingRowIndex = scnt;   //scntの位置までスクロールさせる
 }
前回の質問も含めアドバイス下さった方々、ありがとうございました。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -