【发布时间】:2018-05-04 16:27:18
【问题描述】:
我一直在努力尝试修改组合框以将当前选定的项目视为指向另一个表单的链接。
基本的工作流程很简单;当不从列表中选择新项目时,我希望组合框中的文本像链接一样起作用。此链接将打开一个新表格,并找到相关记录。 IE。单击客户名称以打开客户表单并显示他们的信息。
问题是特定于组合框的;相同的功能适用于文本框。将代码放入 Click 事件中,表单打开,转到正确的记录,轻松。我应该可以用组合框做同样的事情,对吧?
不。 Combobox only fires when selecting a new item from the list 上的 Click 事件。它说,Clicks a control with the left mouse button. Clicking a control with the right or middle mouse button does not trigger this event.,但点击时它什么也没做。
好的。让我们将其设置为超链接。那应该触发 Click 事件!没有。它首先尝试遵循“链接”,并且由于该值是内部主键,因此它不知道如何处理它。所以它会出错,并且无处可去。
现在我的尝试变得更加深奥。让我们在组合框后面隐藏一个矩形,并将代码放在它的 Click 事件中!没有。不会流到后面的物体。让我们把它放在下拉列表的顶部!没有。仍然不会触发矩形的 Click 事件。
好的,去掉矩形。让我们尝试将代码放在 Combobox 的 MouseUp 事件中。答对了。现在单击文本即可。但是......现在每次我点击它都会这样做。当我尝试选择其他客户时,我不希望它打开表单。
我试过detecting when the dropdown is expanded,当它返回真时没有点击链接。那......有点作品。它现在不会关闭展开的下拉菜单,也无法调试它,因为检测代码级别较低,显示调试屏幕使其返回 false(因为下拉菜单不再打开)。
我尝试设置一个静态变量,使其仅在不选择新项目时跟随链接。这非常不一致,因为没有好的方法可以确定组合框处于什么状态。
将文本转换为可点击的链接不应该这么难。如何使组合框中当前选定的项目成为链接,而不同时使组合框中的其他所有内容成为链接?我错过了什么活动吗?
【问题讨论】:
-
试图跟随你正在尝试做的事情,它希望你能启发。您如何确定用户在单击组合框时是否只想单击或展开列表?那你怎么知道他们是想使用当前客户还是选择新客户?
-
当然 - 效果很好 - 如果它有效,请标记为答案,或者对您的帖子有帮助的任何 cmets 或答案进行投票。