- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在创建一个继承自 ComboBox 的自定义控件。我需要检测何时将项目添加到 ComboBox 以执行我自己的检查。是C#还是Vb.NET都无所谓,就是不知道怎么做。
我尝试了我在互联网上找到的所有东西,包括 this thread ,但答案中的链接已离线,我没能猜到我该怎么做。
例如,Vb.net中的这段代码:
Public Sub SomeFunc() Handles Items.CollectionChanged
'....
End Sub
它表示 Items
属性未定义 WithEvents
。
控件未使用 BindingSource。我需要控件在添加项目时执行自定义操作。项目直接添加到 .Items
属性中:
customComboBox.Items.Add("item");
可以吗?
最佳答案
我认为最好的方法是监听本地 ComboBox messages :
不要被 STRING 这个词所迷惑,当您添加、插入或删除一个项目时,它们都会被触发。所以当列表被清除时。
Public Class UIComboBox
Inherits ComboBox
Private Sub NotifyAdded(index As Integer)
End Sub
Private Sub NotifyCleared()
End Sub
Private Sub NotifyInserted(index As Integer)
End Sub
Private Sub NotifyRemoved(index As Integer)
End Sub
Protected Overrides Sub WndProc(ByRef m As Message)
Select Case m.Msg
Case CB_ADDSTRING
MyBase.WndProc(m)
Dim index As Integer = (Me.Items.Count - 1)
Me.NotifyAdded(index)
Exit Select
Case CB_DELETESTRING
MyBase.WndProc(m)
Dim index As Integer = m.WParam.ToInt32()
Me.NotifyRemoved(index)
Exit Select
Case CB_INSERTSTRING
MyBase.WndProc(m)
Dim index As Integer = m.WParam.ToInt32()
Me.NotifyAdded(If((index > -1), index, (Me.Items.Count - 1)))
Exit Select
Case CB_RESETCONTENT
MyBase.WndProc(m)
Me.NotifyCleared()
Exit Select
Case Else
MyBase.WndProc(m)
Exit Select
End Select
End Sub
Private Const CB_ADDSTRING As Integer = &H143
Private Const CB_DELETESTRING As Integer = &H144
Private Const CB_INSERTSTRING As Integer = 330
Private Const CB_RESETCONTENT As Integer = &H14B
End Class
关于c# - 检测添加到 ComboBox 的项目的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24761600/
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎是题外话,因为它缺乏足够的信息来诊断问题。 更详细地描述您的问题或include a min
我有一个包含一些数据的网格(用户列表)。对于每一行,我有许多操作,例如更新、删除、激活、暂停、查看您命名的订单。 而不是放置如此多的按钮,这些按钮将填充超过 400-500像素 我想放置一个组合框,其
在我的一个对话框中,我有以下控制: 我在其他地方填充 ComboBox,如下所示: 但是,如果我没有创建 ComboBox 位,MSI 仍将构
我在项目中为 MVC 使用了 kendo complete。 我有某些形式的国家/地区列表,我显示国家/地区名称,但存储国家/地区代码。 我有以下问题:当用户输入不在列表中的内容时,该值将发送到服务器
我有一个组合框,其中的值是从托管 bean 填充的,如下所示: keywordlist.setConnDB("jdbc:sqlserver://xx.xx.x.xx:1433;DatabaseName
我有一个 ComboBox,它绑定(bind)到 ViewModel 中的复杂类型集合,这些类型的长度可以是任意数量,具体取决于用户的偏好。 我已经创建了一个基于 ComboBox 默认值的样式,并且
我做了一个转换器: public class BooleanToDateConverter implements Converter { private static final long s
编辑:由于 Rob 的回答,我已经更新了下面的代码,现在它可以工作了。 我找到了几页显示如何执行此操作的页面( http://www.cmcrossroads.com/content/view/131
我是 PyQT 的新手。 我有兴趣向 tableView 的每一行添加一个组合框。在 PyQT 4 中可能吗? 我知道,在 QT5 中是可能的,但不确定 PyQT。 预先感谢您的帮助。 最佳答案 如果
我对 JavaFX(8)、HBox、ComboBox 和 HGrow 有问题。 HGrow 不能与 ComboBox 结合使用。 (信息:使用 TextField (而不是 ComboBox),它按预
我有一个 XAML UserControl连接到 ImportPresenter View 模型。有四个ComboBox我的 XAML 中的项目: CashActivityTypeBAI CashAc
我将两个组合框绑定(bind)到同一个 listviewcollection。问题是在一个组合框中选择一个值会导致另一个组合框选定项更改为第一个组合框的确切值。它们是耦合的,我希望它们彼此独立。 My
我正在尝试在 extjs 3.4 中的组合框中的选项之间添加一行。我可以添加该行,但不能用我的远程位置的数据填充它。 (如果我删除修改的 tpl 选项,它就会填充)。 这是我的代码。我只需要在“组”字
我被 WIX 安装程序中的组合框和自定义操作困住了。 我有一个包含几个值的组合框(下拉菜单)。当用户从此下拉列表中选择一个值时,我想在屏幕上显示一些文本(对于下拉列表中的每个项目都是唯一的)。 在 .
我有 ComboBox cbx 和一个包含选项卡的 TabPane(选项卡:t)和一个按钮 b1。因此,单击此按钮 b1 时,它会在 TabPane 中添加一个新选项卡 t,并在包含以下内容的 Com
我有两个组合框:水果和饮料。 fruits 具有字符串:“apple”、“orange”、“banana” drinks 具有字符串:“water”、“coffee”、“juice” 如何制作一个新组
我必须监听什么事件,以便在用户从(可编辑的)WPF ComboBox control 中选择一个选项时得到通知? 我是否必须先访问 Items 属性才能收听 Items.CurrentChanged?
我有以下简单的 QML 组合框: import QtQuick 2.0 import QtQuick.Controls 1.4 import si.mikroelektronika 1.0 Item
当我创建组合框时,列表中没有项目。现在,当我单击下拉按钮时,会调用一个函数(通过 postcommand 选项),但是一旦在我的函数中,我不知道如何在组合框的列表框中设置值。 代码如下: #u
我有两个组合框 我使用 LINQ-to-Entities 来填充 cmbGroup 组合框 Dim db as myDataEntity cmbGroup.ItemsSource = db.Mak
我是一名优秀的程序员,十分优秀!