12

垂直スクロールバーがある場合、C#リストビューの最後のアイテムをプログラムで表示するにはどうすればよいですか?リストビューに関連するすべての方法を調べましたが、何も見つかりません。

4

8 に答える 8

13

リストビューをスクロールするのは実際には簡単/不可能です。あなたはそれが見えることを確認するためにアイテムに伝える必要があります。

var items = listView.Items;
var last = items[items.Count-1];
last.EnsureVisible();
于 2009-03-05T20:37:12.753 に答える
6
this.listView1.Items[this.listView1.Items.Count - 1].EnsureVisible();  
于 2009-03-05T20:37:31.910 に答える
1

WINFORMS:

ListViewのItemsコレクションの最後のアイテムでSelected値をTRUEに設定してみましたか?

これを行うと、最後の項目に焦点が当てられると思います...必要に応じて下にスクロールします。しかし、私は自分自身を試しませんでした。

編集: これはトリックを行います:

Me.ListView1.Items(Me.ListView1.Items.Count - 1).EnsureVisible()
于 2009-03-05T20:35:38.963 に答える
1

ListViewItem.EnsureVisible()

于 2009-03-05T20:36:25.890 に答える
0

WPFまたはWinForms?

WPFでは、を取得しListViewItemて呼び出しますBringIntoView

于 2009-03-05T20:34:53.630 に答える
0

次のハックは、最後の ListView 項目を選択して表示します。
なぜこれが機能するのかはわかりませんが、機能します。

listview.SelectedIndices.Clear();  
listview.FocusedItem = listview.Items[listview.Items.Count - 1];  
listview.FocusedItem.Selected = true;  
listview.BeginInvoke((MethodInvoker)delegate { 
    listview.FocusedItem.EnsureVisible(); 
});

また、水平スクロール バーを表示したくない場合は、をClientArea呼び出す前に、ListView の幅に合わせて ListView の列のサイズを変更する必要がありますBeginInvoke

于 2011-03-13T07:41:45.133 に答える
0

これは、windows 関数を使用して水平方向を非表示にし、常に垂直方向を強制的に表示するためのリンクです。

http://social.msdn.microsoft.com/Forums/en-US/winforms/thread/4aa4dade-53a2-4e2e-a8b4-b4980da1f39c/

于 2009-09-15T21:53:11.260 に答える