5

スクリーンショット:

ここに画像の説明を入力

以下のコードを使用してスクリーンショットに上記のメニューを入力しましたが、愚かなことに、プロパティ名がないため、各サブアイテムでクリックイベントを作成する方法がわかりませんか? :S私の意図は、「Do and Do」をクリックして、ファイルを使用して開くことProcess.Start(filename);です。私はプログラミングに非常に慣れていないので、ご容赦ください。:| どうもありがとう!

private void loadViewTemplates(string path)
{
    foreach (string file in Directory.GetFiles(path, "*.txt"))
    {
        ToolStripItem subItem = new ToolStripMenuItem();
        subItem.Text = Path.GetFileNameWithoutExtension(file);
        viewTemplatesToolStripMenuItem.DropDownItems.Add(subItem);
    }
}
4

2 に答える 2

10

クリック手順をスタブ化してみてください。送信者は、クリックされたメニュー項目になります。

private void MenuClicked(object sender, EventArgs e) {
  MessageBox.Show("Clicked on " + ((ToolStripMenuItem)sender).Text);
}

次に、各メニューのクリック イベントを接続します。

ToolStripItem subItem = new ToolStripMenuItem();
subItem.Click += MenuClicked;
subItem.Text = Path.GetFileNameWithoutExtension(file);
viewTemplatesToolStripMenuItem.DropDownItems.Add(subItem);
于 2012-08-20T23:49:48.040 に答える
2

私は実際には Windows フォームを使用しないので、これを行うためのより広く受け入れられている方法があるかもしれませんが、ここでやりたいことは、"クリック" イベントにイベント ハンドラーを追加することです。このような:

subItem.Click += new EventHandler(subItem_Click);

次のようにsubItem_Clickなります。

private void subItem_Click(object sender, EventArgs e)
{
    //click logic goes here
}
于 2012-08-20T23:52:22.063 に答える