我有一个列表视图和一个用于从该列表视图中删除项目的按钮。当没有选择任何项目时,需要禁用该按钮,但是当它们执行时启用。我尝试了不同的事件组合,但找不到一个正确禁用按钮......
当listview失去焦点时禁用按钮时,我无法删除该项目,因为要点击该按钮,他们需要在列表视图外点击..
我希望在Visual Studio中有更多经验的人可以帮助我找到listview事件的正确组合,以根据他们是否选择了某个项来启用和禁用该按钮。
答案 0 :(得分:2)
只需订阅此事件ItemSelectionChanged
(例如在构造函数中):
listView1.ItemSelectionChanged += OnListViewItemSelectionChanged;
在事件方法中启用/禁用您的按钮:
private void OnListViewItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e)
{
button1.Enabled = (listView1.SelectedItems.Count > 0);
}
答案 1 :(得分:0)
我刚刚测试了一些代码来执行此操作:
private void Form1_Load(object sender, EventArgs e)
{
//Added some dummy items
for(int i=0; i<10; i++)
listView1.Items.Add("Item"+i.ToString());
//Disable the button
button1.Enabled = false;
}
private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{
button1.Enabled = (listView1.SelectedItems.Count > 0);
}
private void button1_Click(object sender, EventArgs e)
{
listView1.Items.Remove(listView1.SelectedItems[0]);
}
这完全正常。
如果您遇到问题,可以在此处发布您的代码。