我正在尝试在学习 C# 时做一些新的事情。我最近发布了一个与直接设置和填充上下文菜单类似的问题。现在我已经完成了,我发现自己无法获得所需的执行。
我正在创建一个用户定义的快速访问列表。它只是一个名称和 IP 地址。
我正在从 xml 文档填充列表并通过以下方式添加到上下文菜单:
ToolStripMenuItem.DropDownItems.Add(string name, image, eventargs onClick)
我被困的地方是试图弄清楚如何告诉点击事件使用什么 IP。我知道在方法参数中我可以通过向函数添加另一个参数来传递 IP 地址,例如:
doSomething("Hello World");
void doSomething(cmd)
{
messageBox.Show(cmd);
}
如何让我的变量菜单选项为名称指明正确的 IP 地址?我假设如果我可以使用正确的 IP,那么我也可以使用相同的方法来使用密码。所以我的代码看起来像:
private void addToolStripMenuItem_Click(object sender, EventArgs e)
{
...
foreach(xml node in xml doc)
{
Room r = new Room();
r.Name =xNode.SelectSingleNode("Name").InnerText;
r.IP = xNode.SelectSingleNode("IP").InnerText;
r.passwrd=xNode.SelectSingleNode("Pass").InnerText;
locations.add(r);
presetsToolStripMenuItem.DropDownItems.Add(r.Name, null, disp);
}
}
void disp(object sender, EventArgs e)
{
MessageBox.Show(r.Name's IP address);
MessageBox.Show(r.Name's password);
}
我不反对使用另一种方法来做到这一点。这正是我能找到的最简单的。我只是想确保它保持简单并且上下文菜单/列表是从 xml 文档中填充的。