« 2007年12月 | トップページ | 2008年6月 »

2008.01.14

GridDataViewでの問題

2008年に入ってすでに半月経過しました。
仕事が忙しくて予告した「ふち付け君」の再公開の準備は進んでいません。もうしばらくお待ちください。

それとは別に今日は自分自身の記録のためにも今やっている仕事で見つけたGridDataViewの不思議な動作について書いておきます。

今作っているプログラムではリスト表示のためにDataGridViewコンポーネントを使用しています。このコンポーネントは本来はデーターソースとしてデータベースに接続して使用するもののようですが、アプリケーションからデータを操作して使うこともできます。
いろいろと便利なのでこのコンポーネントを使っているのですが、今日おかしな動作をしていることに気がつきました。最初はうまく動くのですが、データを更新するために一度からにして再設定し直した時にスクロールバーの状態と実際のデータの状態があわなくなって操作しているとエラーが起きます。プログラムの原因でないと思うのでこの症状について検索してみたところこのサイト内の記述にヒントを見つけました(掲示板なのでトップにリンクしています)。
このページによると同じような現象に以下の2行を入れるとなぜかうまくいくという情報があったので更新処理の最後に入れて試して見ました。

tblXXX.VirtualMode = True tblXXX.VirtualMode = False

テストの結果はこれで上記トラブルは解決したように見えます。
本来のVirtualModeは部分更新のための仕組みのはずですが、これでうまく行く理由はよくわかりません。そもそもの動作がバグっぽいのでデータと表示の同期に問題があってたまたまこの部分を操作することで同期が正常に行われるのではないかと予想しています。

| | コメント (0) | トラックバック (0)

« 2007年12月 | トップページ | 2008年6月 »