Csharp/C#教程:为ListView Items_added添加事件处理程序分享


为ListView Items_added添加事件处理程序

在C#Windows窗体应用程序中; 是否有一个ListView控件的事件处理程序,当项目添加到listview项目时会触发?

我会在这里或这里 看到 。 它们或多或少是相同的答案,只是用不同的风格书写。 简短版本,将ItemAdded事件添加到ListViewItemCollection。

你不需要编辑其他来源!

好的:从ListView更改为myListView

很久以前 – 但我搜索没有带有自己的ItemAdd-Function的工具的解决方案! 最好的方法…使用WndProc函数。

消息:LVM_INSERTITEM

https://msdn.microsoft.com/en-us/library/windows/desktop/bb761107%28v=vs.85%29.aspx

//COMMCTRL.H #define LVM_FIRST 0x1000 // ListView messages #define LVM_INSERTITEMA (LVM_FIRST + 7) #define LVM_INSERTITEMW (LVM_FIRST + 77) //edit itemremove (LVM_DELETEITEM) #define LVM_DELETEITEM (LVM_FIRST + 8) 

C# – 实施

 class myListView : ListView { protected override void WndProc(ref Message m){ base.WndProc(ref m); switch (m.Msg){ case 0x1007: //ListViewItemAdd-A System.Diagnostics.Debug.WriteLine("Item added (A)"); break; case 0x104D: //ListViewItemAdd-W System.Diagnostics.Debug.WriteLine("Item added (W)"); break; //edit for itemremove case 0x1008: System.Diagnostics.Debug.WriteLine("Item removed"); break; case 0x1009: System.Diagnostics.Debug.WriteLine("Item removed (All)"); break; default: break; } } } 

现在您可以激活自己的ItemAddedEvent。 我希望能帮助其他有同样问题的人。

gegards raiserle

(编辑:请投票;))

没有事件可以做到这一点。 但您始终可以创建自己的列表框:

 public class MyListView : ListView { public void AddItem(ListViewItem item) { Items.Add(item); if (ItemAdded != null) ItemAdded.Invoke(this, new ItemsAddedArgs(item)); } public EventHandler ItemAdded; } public class ItemsAddedArgs : EventArgs { public ItemsAddedArgs(ListViewItem item) { Item = item; } public object Item { get; set; } } 

另一种方法是将项目保存在ObservableCollection类的实例中,将ListView.ItemsSource设置为该集合并订阅ObservableCollection.CollectionChanged事件。

框架未定义诸如ItemAdded的事件。 但是,请确保访问此变通方法: 观察者模式和扩展ListView事件模型 。 例如,在那里定义了以下事件:

上述就是C#学习教程:为ListView Items_added添加事件处理程序分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

 public event ListViewItemDelegate ItemAdded; public event ListViewItemRangeDelegate ItemRangeAdded; public event ListViewRemoveDelegate ItemRemoved; public event ListViewRemoveAtDelegate ItemRemovedAt; 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1015744.html

(0)
上一篇 2021年12月31日
下一篇 2021年12月31日

精彩推荐