ループでリスト全体を書き換えずに、WinForms ListBoxにリストの先頭に項目を追加する方法はありますか?
私の問題を解決する他の方法は、ListBoxを逆の順序で表示することです(一番上の項目)。しかし、その方法がわかりません。
My ListBoxコントロールは、最新のエントリが一番上にあるログビューアとして使用されます。
Insert
のアイテムに対して ListBox
メソッドを使用します。
私が正しく理解している場合、Insert(int index, object item)
メソッドを使用できませんか?例えば:
myListBox.Items.Insert(0, "First");
これにより、リストボックスの最初のアイテムとして「First」が挿入されます。
1つのオプションは、ListBoxの.Sort()メソッドを使用することです http://msdn.Microsoft.com/en-us/library/system.windows.forms.listbox.sort.aspx
もちろん、もう1つは、アイテムを一般的なリストに入れ、リストボックスに直接ではなく、そのリストからアイテムを追加/削除することです。リストをリストボックスのデータソースとして使用します。
ログイベントにタイムスタンプを付ける場合は、データソースでソート順を設定できるはずです。
ここで私をバックアップする科学的証拠はありませんが、ログの視覚化を処理するにはテキストボックスの方がパフォーマンスが高いと思います。自動スクロールを簡単に設定することもでき、何かをコピーしたい場合は、コーディングは必要ありません。