1

次のコードがあります。

Private holdAllDataFromFile As New list(Of String)

holdAllDataFromFile =  ReadWrite.ReadAll(FILE_PATH) 'Uses custom class to read/write.

For Each item In holdAllDataFromFile.AsEnumerable 
    menuConnections.DropDownItems.Add(finalData(1).tostring ) 'save to menu
Next

実行時に、これらのメニュー項目をクリックしてイベントに応答できるようにしたいのですが、1、4、10 の異なるメニュー項目がすべて異なる名前である可能性があるため、プログラムでそれらにアクセスする方法がわかりません。 .

私はこの投稿を私のものと同様に見ていましたが、これがこれを達成するための正しい方法であるかどうかはわかりません. 何かご意見は?

ありがとう

4

1 に答える 1

1

最初にクリック イベント コードをスタブ化します。

Private Sub DataFile_Click(ByVal sender As Object, ByVal e As EventArgs)
  MessageBox.Show("Clicked on " & DirectCast(sender, ToolStripMenuItem).Text)
End Sub

「sender」パラメーターは、追加した ToolStripMenuItem になります。

その後、ループを変更してイベント ハンドラーを追加できます。

For Each item In holdAllDataFromFile
  menuConnections.DropDownItems.Add(item, _
                                    Nothing, _
                                    AddressOk DataFile_Click)
Next

「finalData(1).tostring」を単に「item」に変更したのは、それがループ変数であるためです。その finalData 変数がどこから来ているのか、それがループとどう関係しているのかは不明です。holdAllDataFromFile はすでに List(of String) であるため、AsEnumerable も削除しました。

于 2012-08-15T19:57:45.513 に答える