2009-08-25 8 views
1

DatGridViewがBindingSourceにバインドされていて、DataSourceを設定した後にスクロールしようとしています。DataGridViewを最後の行にスクロールしてDataSourceを設定した後

バインド元のMoveLast()の最終行が選択されていますが、スクロールしません。 FirstDisplayedScrollingRowIndexを設定しようとしましたが、InvalidOperationExceptionがスローされ、「行を表示するための部屋がありません」というメッセージが表示されます。

ボタンクリックイベントなどでMoveLastを呼び出したり、FirstDisplayedScrollingRowIndexを後で変更したりするとうまくいきますが、DataGridViewの最後の行を最新の状態に設定してユーザーに表示する新しいウィンドウを開きたいとします。

答えて

3

コンストラクタの呼び出し元FirstDisplayedScrollingRowIndexのような音ですか?フォームのloadイベントで実行してください。最後に、Activateイベントでそれを行い、フォームが描画された後に一度だけ実行されるようにフラグを設定します。

0

テーブルの「scrollToRowAtIndexPath:atScrollPosition:animated」メソッドを使用します。

ので、あなたはそれが好きで使用することができます

[self.table scrollToRowAtIndexPath:indexPath atScrollPosition:UIScrollPositionMiddleはアニメーション:はい]。

「atScrollPosition」は、選択した行を画面上でスクロールする場所を示します。 UIScrollPositionTop、UIScrollPositionMiddle、またはUIScrollPositionBottomを選択できます。

「アニメーション」フィールドは、スクロールをアニメーション化するか、すぐに表示させるかを表します。

あなたが必要な場合は、独自のindexPathを作成することができます。 [NSIndexPath indexPathForRow:(行数または整数値)inSection:0]あなたの場合にのみ

「inSection」は、あなたがのためにパスをしたい部分になりますほとんどのテーブルには1つのセクションしかありません。

+0

このリンクも同様に役立ちます。 http://stackoverflow.com/questions/724892/uitableview-scroll-to-the-top – georryan

+1

Whut?これはWinFormsであり、AppleのCocoaではありません:) – xyz

+0

おっと、そうです!私の悪い。 =) – georryan

関連する問題