【问题标题】:VB6 - comboboxes lost focusVB6 - 组合框失去焦点
【发布时间】:2016-05-10 15:00:07
【问题描述】:

我正在处理一个 VB6 项目,但遇到了一些我无法解决的问题。在我的项目中,我使用的是 2.0 组合框。一切工作正常,在组合框加载数据、选择它以及整个过程中。我要做的是,一旦选择了数据,我确保在两个组合框中都没有选择相同的数据。我正在尝试在 LOST FOCUS 中为其中一个 cbo 编写一个快速比较 IF 语句,但它似乎不起作用。

Private Sub cbo1_LostFocus() 
if cbo1.text<>"" and cbo2.text<>"" then
    if cbo1.text = cbo2.text then
        MSGBOX "Duplicate Values"
    else
        exit sub
    End if
end if
End Sub

它根本没有意识到有 LOST FOCUS - 我想我从来没有对 cbo 这样做过,通常是文本框等。任何帮助表示赞赏。

【问题讨论】:

    标签: combobox vb6 lost-focus


    【解决方案1】:

    您可以尝试 GotFocus。在某些情况下,似乎可以覆盖或屏蔽 LostFoucs 事件。这篇文章显示了类似的问题:http://www.vbforums.com/showthread.php?396536-RESOLVED-VB6-LostFocus

    当然,你总是可以升级到最新的 VB,但我猜你有你的理由。

    【讨论】:

    • 我正在维护一个旧版 vb6 应用程序。 GotFocus 我已经有一个不同的原因。 LostFocus 根本不会触发,Validate 也不会。
    • 您可以随时将此代码放入一个单独的函数中,然后在 GotFocus 中调用它。除非您说您现有的 GotFocus 代码会干扰此功能。
    • 我想这也可以。当它失去焦点时,我真的很想这样做,因为这样我可以在 cbo1 中选择一个值,然后在 cbo2 中选择一个值之后 - 我检查两者是否相同。我刚刚尝试了 CHANGE 并且它有效,但 LOST FOCUS 会帮助我更多,因为它会不断提醒他们值是不同的 - 所以他们不会意外保存它。通过 Change,我使用 msgbox 告诉用户他们有 2 个值 - 仅此而已。
    • 您能否尝试添加第三个非 cbo 组件,看看当您将焦点切换到该组件时是否会触发 LostFocus?
    猜你喜欢
    • 2010-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-02
    • 1970-01-01
    • 2013-06-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多