【问题标题】:ComboBox doesn't highlight when selected programmatically以编程方式选择时,组合框不突出显示
【发布时间】:2015-12-28 17:22:28
【问题描述】:

vb.net 2012

我有两个组合框,其 DropDownStyle 为 DropDownList。我在表单加载时选择其中一个组合框,cboMyBox.Select()。我的问题是,当我以编程方式选择(或聚焦或全选)组合框时,它不会显示虚线突出显示。当我在控件之间切换时,虚线高亮显示得很好。我在选择它之前用数据填充组合框。

当我在代码中选择控件时,如何让虚线高亮显示?

在代码中选择了组合框但没有突出显示

Tab 到下一个控件并突出显示节目

Ctrl+Tab 返回初始组合框,高亮显示

【问题讨论】:

    标签: vb.net combobox


    【解决方案1】:

    我已经做了一些实验,似乎一旦您选择了任何控件,如组合框或文本框,然后使用 Select() 或 Focus() 方法,选择框(虚线矩形)出现在所有组合框;即使您之前没有使用所有选项卡。

    诀窍是在表单打开时使用SendKeys 切换到某些控件。

    Private Sub Form1_Shown(sender as Object, e as EventArgs) _ 
        Handles Form1.Shown
    
        ' Select the control preceding a combo box in the tab order.
        textBox1.Select()
    
        SendKeys.SendWait("{Tab}")
        SendKeys.SendWait("{Tab}")
    
        ' Select the fist control to be selected when form opens.
        btnFocus.Select()
    End Sub
    

    只有在两次发送 TAB 键时才有效(不要问我为什么,可能是时间问题)。

    【讨论】:

    • 我尝试使用 Sendkeys.SendWait("{Tab}") 和 Sendkeys.send("{Tab}") 但光标没有从最初选择的字段移动。
    • Me.ProcessTabKey(True) 将移动光标但是如果我选择不同的控件并使用该命令两次然后选择我的组合框,或者如果我只是使用 me.processtabkey 选项卡到组合框它仍然没有t 显示虚线。
    猜你喜欢
    • 1970-01-01
    • 2018-02-14
    • 2014-06-15
    • 1970-01-01
    • 2018-05-26
    • 1970-01-01
    • 2018-07-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多