あるイベントをトリガする多数の場合はListViewItems、ListView。Windows Forms)

StackOverflow https://stackoverflow.com/questions/47169

  •  09-06-2019
  •  | 
  •  

質問

思の有効/無効設定その他の制御に基づかなければならない多くの項目は私の ListView ます。いずれにしよう、どちらかに ListView 自身、または ListViewItemCollection.ありがとうござい方を総称しに見るコレクションのクライアントまで、フルのC#のための変化するかを

嬉しいでその他のイベントでもいいのでもあり、火の項目がな変化が、例えば、 ControlAddedLayout イベントに動作しなかった:(.

役に立ちましたか?

解決

@Domenic

なくても、なかなか得ることにした。

別の解決が延長するListView、追加、削除、の代わりに呼びかける。ます。追加項目です。削除は、お呼びします。ることが可能であるの追加および削除なイベントとなって、少しのコードレビューをまれます。ます。追加。ます。削除しないという直接でき事ではないでしょうか。ここで少します。また1追加機能があり、6ついての実施また利用可能なあらゆる機能を追加す.があります。AddRangeです。明らかにするためです。

Public Class MonitoredListView
    Inherits ListView

    Public Event ItemAdded()
    Public Event ItemRemoved()

    Public Sub New()
        MyBase.New()
    End Sub

    Public Function AddItem(ByVal Text As String) As ListViewItem
        RaiseEvent ItemAdded()

        MyBase.Items.Add(Text)
    End Function

    Public Sub RemoveItem(ByVal Item As ListViewItem)
        RaiseEvent ItemRemoved()

        MyBase.Items.Remove(Item)
    End Sub

End Class

他のヒント

においては、当社が定めるインターネットができる。あとだれかのサブクラスListViewItemCollectionを向上させる独自のイベントが何かを追加し、コードと同様です。

Public Class MyListViewItemCollection
    Inherits ListView.ListViewItemCollection

    Public Event ItemAdded(ByVal Item As ListViewItem)

    Sub New(ByVal owner As ListView)
        MyBase.New(owner)
    End Sub

    Public Overrides Function Add(ByVal value As System.Windows.Forms.ListViewItem) As System.Windows.Forms.ListViewItem
        Dim Item As ListViewItem

        Item = MyBase.Add(value)

        RaiseEvent ItemAdded(Item)

        Return Item
    End Function
End Class

私にもできるいはサブクラスListViewを提供するイベントした位置に移動します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top