【问题标题】:Change tab order inside ToolStripMenu在 ToolStripMenu 中更改标签顺序
【发布时间】:2017-09-06 20:24:56
【问题描述】:

当 ToolStrip 控件获得焦点时,第一个 ToolStripItem 也会获得焦点。
我需要将焦点设置到第二项,但 ToolStripItems 中没有 TabIndex 属性。
当 ToolStrip 获得焦点时,我尝试手动选择该项目,但也没有 Focus 方法。
实际上,我们使用继承控件,因此如果需要,我可以创建自定义属性/方法。

知道如何实现这一目标吗?

【问题讨论】:

    标签: vb.net winforms user-controls


    【解决方案1】:

    ToolStrip 在触发 Enter 事件时正在执行某些操作,因此除非您在 Enter 事件代码具有完全的。 BeginInvoke 方法是事件完成后运行代码的一种方式:

    Private Sub ToolStrip1_Enter(sender As Object, e As EventArgs) Handles ToolStrip1.Enter
      Me.BeginInvoke(New Action(Sub()
                                  ToolStrip1.Items(1).Select()
                                End Sub))
    End Sub
    

    【讨论】:

    • @SubazSarma 它不在我的机器上。
    • @SubazSarma:我的也不是。
    • 非常感谢,它成功了!我试图删除 BeginInvoke 但它不起作用,你能解释一下为什么需要这样做吗?
    • @JotaSantana 似乎 ToolStrip 在 Enter 事件期间覆盖了某些行为。 BeginInvoke 是一种在方法完成“之后”运行一些代码的方法。我猜 BeginInvoke 可能会起作用,而且确实有效。
    • 谢谢,我会研究一下这个主题,我以前从未使用过。
    猜你喜欢
    • 1970-01-01
    • 2019-04-03
    • 1970-01-01
    • 2019-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-10
    • 1970-01-01
    相关资源
    最近更新 更多