2009-05-07 19 views
2

私はDataGridViewを持っているとしましょう。指定されたテーブルの約100レコードを表示するコントロール。ユーザーが一番低いポイントまでスクロールするたびに、DataGridViewの背後にあるDataSetに100レコードを追加したいとします。C#のスクロールイベント

私はDataGridViewのコントロールが private void DataGridView_Scroll(object sender, ScrollEventArgs e)のようにスクロールイベントを持っていること、およびScrollEventArg sが私にScrollOrientationScrollEventTypeを与えることknwo。しかし、どのくらいスクロールがスクロールバーの最後に到達したかを正確に把握するにはどうすればよいですか?

Tnks。

答えて

0

すべてのDataGridViewRowには、行が現在画面に表示されているかどうかを示す「表示」プロパティがあります。したがって、次のようなことができます。

if(this.dataGridView1.Rows[this.dataGridView1.Rows.Count - 1].Displayed) 
{ 
    //last rows is displayed, do what you gotta do 
} 
+0

スクロールボタンがスクロールバーの最後に達していなくても、最後の行が表示される可能性があるので、私が気にしていることはありませんが、私の問題は解決します。次の5分間で誰かがより良いアイデアを持っていない限り、あなたの投稿を回答としてマークします。ありがとう。 –

0

"virtual mode"のように聞こえるかもしれません。データバインディングは異なる方法で動作しますが、遅延データのフェッチに適しています。

+0

Virtual Modeのプロパティがどのように役立つのかわかりません...ユーザーがDataGridViewの最後のレコードまでスクロールしたときを調べるだけで済みます。 –

+0

スクロールすると、より多くのデータを提供するように求められます...達成したいのとまったく同じではありませんか? –

+0

私は今あなたが意味することを理解しています。 これが私が達成したいものなら、まあまあではありません。 DataGridViewにデータを追加する直前に、スクロールバーがスクロールバーの最後に到達したときに、正確にMessageBoxを表示し、さらに多くの処理を行いたいと考えています。しかし、面白いことに、より良いアプリケーション設計のケースでは、私はそれを念頭に置いています。おかげさまで –

0

一部のレコードを読むには、DataReadearを使用します。次に、DataGridViewのScrollイベントで、FirstDisplayedScrollingRowIndexプロパティがロードされたレコードの数に近づいているかどうかを確認し、もう一度DataReaderを使用して別の行を取得するかどうかを確認します。

関連する問題