0
我想知道如何正確地填充我的表單中的標籤與來自在'右鍵單擊'上下文菜單中找到的選定預設項目的信息?我目前正在使用每個「產品」類的「名稱」填充上下文菜單。然後,我想填寫與用戶右鍵單擊菜單所選項目對應的標籤。上下文菜單項將隨着項目添加到列表而動態變化。填充C#listview與上下文菜單項
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace rcMenu
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
Product newProductA = new Product();
newProductA.Name = "Ice Cream";
newProductA.Category = "Dessert";
newProductA.Price = "Free";
productList.Add(newProductA);
Product newProductB = new Product();
newProductB.Name = "Cherries";
newProductB.Category = "Produce";
newProductB.Price = "$10.00";
productList.Add(newProductB);
Product newProductC = new Product();
newProductC.Name = "Soda";
newProductC.Category = "Beverage";
newProductC.Price = "$1.99";
productList.Add(newProductC);
}
public static List<Product> productList = new List<Product>();
public class Product
{
public String Name { get; set; }
public String Category { get; set; }
public String Price { get; set; }
}
private void SelectedPreset(object sender, EventArgs e)
{
label1.Text = "Product Name: " + "SELECTED";
label2.Text = "Product Category: " + "SELECTED";
label3.Text = "Product Price: " + "SELECTED";
}
private void contextMenuStrip1_Opened(object sender, EventArgs e)
{
(contextMenuStrip1.Items[0] as ToolStripMenuItem).DropDownItems.Clear();
foreach (var p in productList)
{
var itemName = p.Name;
(contextMenuStrip1.Items[0] as ToolStripMenuItem).DropDownItems.Add(itemName, null, SelectedPreset);
}
}
}
}
你能否返回itemClicked'index'列表中的項目號。例如,如果第二個項目在列表中點擊,那麼它會返回'2' – JokerMartini 2014-08-31 20:49:12
@JokerMartini我認爲這樣做會這樣:int index = contextMenuStrip1.Items.IndexOf(e.ClickedItem); – terrybozzio 2014-08-31 21:15:13
似乎不適用於子菜單項。這隻適用於主菜單項。 – JokerMartini 2014-09-02 00:59:17