来自C#newbie的另一个问题 - 我想使用单个函数来响应菜单中提供的选项列表。当我在调试模式下运行时,我可以将鼠标悬停在发送方上,很明显发送方拥有我需要的信息,菜单中项目的索引和与之关联的文本。但是,我还没有弄清楚如何以我得到的方式编写代码。以下内容无法编译:
int device;
private void myMenuItemInputClick(object sender, EventArgs e)
{
device = sender.Index;
}
当我在myMenuItemInputClick上设置断点并将鼠标悬停在发件人上时,我看到的是:
sender {Windows.System.Forms.MenuItem,Items.Count:0,Text:Stereo Mix(Realtek High Defini}
将鼠标移到“+”符号上,使其成为“ - ”,调试语句列表下拉显示有一个项目索引正是我想要的。如何编写能够获得我正在寻找的项目的代码?
答案 0 :(得分:2)
将发件人转换为MenuItem可能会解决此问题。
int device;
private void myMenuItemInputClick(object sender, EventArgs e)
{
device = ((MenuItem)sender).Index;
}
提到的变异Bharath就像是,
int device;
private void myMenuItemInputClick(object sender, EventArgs e)
{
var menuItem = sender as MenuItem;
if(menuItem != null)
device = menuItem.Index;
}
答案 1 :(得分:0)
尝试将sender
对象转换为您正在处理的类型。您应该能够获取属性。
E.g。
var menuItem= sender as MenuItem;
menuItem.Index