0

我正在ToolStripMenuItem根据机器上可用的 COM 端口将 s 添加到菜单中,以允许用户检查一个以供使用。

我想为每个菜单项添加一个助记符,以便结果与我手动添加“COM&6”作为 ToolStripMenuItem.Text 属性值相同。

但是,使用PortName.Insert(3, "&")似乎没有任何效果,或者我设置的文本不正确?

我怎样才能做到这一点?目前我对这个部分的完整代码如下:

For Each p As String In PortNames
    Dim tsmi As ToolStripMenuItem = New ToolStripMenuItem()
    tsmi.Name = p
    p.Insert(3, "&") 'This appears to do nothing
    tsmi.Text = p
    tsmi.CheckOnClick = True
    tsmi.Checked = False
    AddHandler tsmi.Click, AddressOf Me.PortSelectionTooStripMenuItem_Click
    CommunicationsToolStripMenuItem.DropDownItems.Add(tsmi)
Next

编辑:我意识到我可能实际上并不想这样做,因为如果 COM 编号变为两位数(例如 COM&1 和 COM&10 将是相同的助记符),这将导致问题。但我仍然有兴趣了解如何做到这一点以及为什么我的代码不起作用。

4

1 回答 1

0

正如@HansPassant 评论的那样,字符串是不可变的,因此Insert()必须像共享函数一样使用。也就是说,而不是:

p = tsmi.Name
p.Insert(3, "&")
tsmi.Text = p

我应该改用:

tsmi.Text = tsmi.Name.Insert(3, "&")
于 2016-02-08T16:25:59.050 回答