0

无论如何设置一个条件,例如:

当我打开一个文件时,它会在 ListView 上加载一些信息,第五个子项(索引计数应该是 4)正在加载文本,如果它是“ETDF”,则在 contextmenustrip 中启用一个项目,如果不是,禁用它,我在 contextmenustrip 中尝试了这个,但它只是给了我一个例外:

if (listView1.SelectedItems[4].ToString() != "ETDF")
        {
            editToolStripMenuItem.Enabled = false;
        }
        else if (listView1.SelectedItems[4].ToString() == "ETDF")
        {
            editToolStripMenuItem.Enabled = true;
        }

难道我做错了什么 ?

4

3 回答 3

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;
            }
        }
于 2013-06-29T23:54:53.677 回答
1
if (listView1.SelectedItems[4].Text != "ETDF")
        {
            editToolStripMenuItem.Enabled = false;
        }
        else if (listView1.SelectedItems[4].Text == "ETDF")
        {
            editToolStripMenuItem.Enabled = true;
        }

这应该可以解决您的问题,错误是在调用 tostring() 时应该是文本

于 2013-06-30T00:05:16.070 回答
1

在Opening事件中设置Enabled属性。

private void MyContextMenuStrip_Opening(object sender, CancelEventArgs e)
{
    editToolStripMenuItem.Enabled = (listView1.SelectedItems[4].ToString() == "ETDF");
}
于 2013-06-29T23:33:54.813 回答