无论如何设置条件如:
当我打开文件时,它会在ListView上加载一些信息,第五个子项(索引计数应该是4)正在加载文本,如果是“ETDF”,则启用contextmenustrip中的项目,如果不是,则禁用它,我在contextmenustrip中尝试了这个,但它只给了我一个例外:
if (listView1.SelectedItems[4].ToString() != "ETDF")
{
editToolStripMenuItem.Enabled = false;
}
else if (listView1.SelectedItems[4].ToString() == "ETDF")
{
editToolStripMenuItem.Enabled = true;
}
我做错了什么?
答案 0 :(得分:1)
在Opening事件中设置Enabled
属性。
private void MyContextMenuStrip_Opening(object sender, CancelEventArgs e)
{
editToolStripMenuItem.Enabled = (listView1.SelectedItems[4].ToString() == "ETDF");
}
答案 1 :(得分:1)
您是否收到了ArgumentOutOfRangeException。如果是,请检查计数。
if (listView1.Items.Count >= 5)
{
if (listView1.SelectedItems[4].ToString() != "ETDF")
{
editToolStripMenuItem.Enabled = false;
}
else if (listView1.SelectedItems[4].ToString() == "ETDF")
{
editToolStripMenuItem.Enabled = true;
}
}
答案 2 :(得分:1)
if (listView1.SelectedItems[4].Text != "ETDF")
{
editToolStripMenuItem.Enabled = false;
}
else if (listView1.SelectedItems[4].Text == "ETDF")
{
editToolStripMenuItem.Enabled = true;
}
这应该解决你的问题,错误是在调用tostring()时应该是文本