dポイントプレゼントキャンペーン実施中!

プログラム内からドロップダウンメニューを追加して、追加されたメニューをクリックすると処理を実行するプログラムを作っています。
そこで質問なのですが

ToolStripMenuItem.DropDownItems.Add でメニューをいくつか追加した後

Private Sub ToolStripMenuItem_DropDownItemClicked(ByVal sender As Object, ByVal e As System.Windows.Forms.ToolStripItemClickedEventArgs) Handles ToolStripMenuItem.DropDownItemClicked
Dim a As String
a = e.ClickedItem.ToString
End Sub
で、ドロップダウンメニューに追加した項目名を取得できるのはわかったのですが、クリックされたメニューが上から何番目かを示すINDEXに相当する値を取得するにはどうしたらよいのでしょうか。調べてみたのですが、見つかりませんでした。
一つ一つ名前を照合していくしかないのでしょうか?

A 回答 (1件)

Indexに相当する項目は無いようです



イベントの Sender引数は ToolSTripMenuItemですからこれのDoropDownItemsを自前で検索といった手法でしょう

Dim ddItems As ToolStripItemCollection = CType(sender, ToolStripMenuItem).DropDownItems
dim n as integer, s as String
s = e.ClickedItem.ToString
for n = 0 to ddItems.Count -1
  if s = ddItems(n).Text then
    exit for
  end if
next
if n<>ddItems.Count then
  MsgBox( "Index=" & n )
end if
といった具合でしょう …
    • good
    • 0
この回答へのお礼

やはりfor~nextで
一つ一つ照合するしか手がなさそうですね。
ありがとうございました。

お礼日時:2008/02/17 10:53

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!