C#学习教程:用于检测添加到ComboBox的项目的事件我需要检测何时将项目添加到ComboBox以执行我自己的检查。是C#还是Vb.NET都无所谓,就是不知道怎么做。我尝试了我在互联网上找到的所有内容,包括这篇文章,但答案中的链接是离线的,我无法弄清楚我应该做什么。例如,Vb.net中的这段代码:PublicSubSomeFunc()HandlesItems.CollectionChanged'....EndSub它表示Items属性未定义WithEvents。该控件未使用BindingSource。我需要控件在添加项目时执行自定义操作。项目直接添加到.Items属性:customComboBox.Items.Add("item");这个可以吗?我认为最好的方法是监听本机ComboBox消息:不要被STRING这个词所迷惑,它会在您每次添加、插入或删除项目时触发。因此,当列表清除时。公共类UIComboBox继承ComboBoxPrivateSubNotifyAdded(indexAsInteger)EndSubPrivateSubNotifyCleared()EndSubPrivateSubNotifyInserted(indexAsInteger)EndSubPrivateSubNotifyRemoved(indexAsInteger)EndSubProtectedOverridesSubWndProc(ByRefmAsMessage)SelectCasem.MsgCaseCB_ADDSTRINGMyBase.WndProc(m)DimindexAsInteger=(Me.Items.Count-1)Me.NotifyAdded(index)退出选择案例CB_DELETESTRINGMyBase.WndProc(m)DimindexAsInteger=m.WParam.ToInt32()Me.NotifyRemoved(index)退出选择案例CB_INSERTSTRINGMyBase.WndProc(m)DimindexAsInteger=m.WParam.ToInt32()Me.NotifyAdded(If((index>-1),index,(Me.Items.Count-1)))退出选择案例CB_RESETCONTENTMyBase.WndProc(m)Me.NotifyCleared()退出选择案例ElseMyBase.WndProc(m)退出选择结束选择结束子私有ConstCB_ADDSTRINGAsInteger=&H143PrivateConstCB_DELETESTRINGAsInteger=&H144私有ConstCB_INSERTSTRING作为Integer=330PrivateConstCB_RESETCONTENTAsInteger=&H14BEndClass如果您的ComboBox由BindingSource支持,那么您可以侦听AddingItem事件并相应地处理它您可以控制何时将项目添加到ComboBox。因此,当发生这种情况时,不会触发任何事件。您是向ComboBox添加项目的人。执行此操作的不是外部可执行文件,而是您的代码。因此,您可以确保所有添加都是通过函数AddItem(itemAsObject){...}完成的,并且您应该处理在项目中添加项目时需要执行的逻辑。因此,不需要任何事件。以上就是《C#学习教程:ComboBox添加项检测事件共享》的全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场,如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处:
