기본 레이아웃이있어서 기본 설정 항목이있는 contextMenu의 하위 메뉴 항목을 채 웁니다. 선택한 하위 메뉴 항목의 '색인'을 찾으려고합니다. 이것을 위해 어떤 방법이 있습니까? 주 메뉴 항목의 색인을 찾는 방법을 찾았지만 하위 메뉴 항목은 찾지 못했습니다.C# contextSubMenu 항목의 인덱스를 찾았습니다.
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 contextMenuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
{
//works only for main menu items
int index = contextMenuStrip1.Items.IndexOf(e.ClickedItem)
//need index of submenu ITEM CLICKED??
}
private void contextMenuStrip1_Opening(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);
}
}
}
}
당신은 인덱스 자체가 필요하십니까? 아니면 그냥 제품을 검색하는 데 사용하고 있습니까? –
목록에서 제품을 조회하는 데 사용합니다. 따라서 contextMenu 프리셋 목록의 세 번째 항목은 List에 저장된 변수의 세 번째 항목입니다. – JokerMartini
@DJKRAZE이 게시물을 게시하기 전에 참조하고있는 게시물을 살펴본 결과 'SubmenuItem_Click'을 사용하여 그의 결과를 조사 할 때 어떤 정보도 찾을 수 없다는 것을 알았습니다. – JokerMartini