【问题标题】:How can I know which item in a mult-select Microsoft Access listbox was clicked?如何知道单击了多选 Microsoft Access 列表框中的哪个项目?
【发布时间】:2009-12-04 04:31:43
【问题描述】:

我在 Microsoft Access 表单中有一个列表框。 MultiSelect 属性设置为简单。

我想知道列表框中的哪个项目被点击了。请记住,可以单击一个项目来选择或取消选择一个项目。

有没有简单的方法来做到这一点?如果没有,有没有复杂的方法可以做到这一点?

我尝试使用 SendMessage windows API 但没有使用香蕉,因为访问控件不支持 hwnd 属性。

赛斯

【问题讨论】:

  • 实际上,访问控制确实有一个hWnd句柄,但只有当它们有焦点时。
  • 大卫,你是怎么弄到手柄的?列表框肯定没有 hwnd 属性?赛斯

标签: ms-access vba listbox hwnd


【解决方案1】:

如果 MultiSelect 属性为 None 则只是列表框的值。

Debug.Print Me.List16

应该足够了。

如果你想要多列的值

Debug.Print Me.List16.Column(0) & ", " & Me.List16.Column(1)

如果 MultiSelect 属性简单或复杂,那么您需要遍历 ItemsSelected 集合。

Dim varItm As Variant

For Each varItm In me.ListBx.ItemsSelected
    Debug.Print me.ListBox.ItemData(varItm)
Next varItm

以上是航空代码。

【讨论】:

  • 托尼,我其实都知道。我想要的不一样。我想知道点击了哪个项目。基本上我希望根据单击的项目从表中实时添加/删除。为此,我需要单击哪个特定项目。赛斯
  • 我在想。考虑使用两个列表框,然后使用带有箭头的命令按钮。与新的表单向导在概念上相同,其中左侧有可用字段列表,右侧有选定字段列表。我们在很多情况下都使用过该界面,用户似乎对它很满意。
  • 我采用了添加/删除范式,效果很好。仍然希望您能知道单击了哪个项目。赛斯
猜你喜欢
  • 1970-01-01
  • 2012-04-25
  • 1970-01-01
  • 2013-10-26
  • 2012-09-07
  • 1970-01-01
  • 2011-12-02
  • 1970-01-01
  • 2011-10-27
相关资源
最近更新 更多