0

ToolStripMenuItemマシンで使用可能な COM ポートに基づいてメニューに s を追加して、ユーザーが使用するポートを確認できるようにします。

ToolStripMenuItem.Text プロパティ値として "COM&6" を手動で追加した場合と同じ結果になるように、各メニュー項目にニーモニックを追加したいと考えています。

ただし、使用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番号が2桁に移動すると問題が発生するため、実際にはこれを実行したくないことに気付きました(たとえば、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 に答える