Dev*_*rer 1 c# listview contextmenustrip winforms
我有一个listview,它具有详细信息的视图模式,并有一个contextmenustrip用于删除所选行中的项目.我的问题是,当我右键单击一个空行时,它会假定所选项目是列表中的第一个项目.contextmenustrip是否有可能只出现在具有值的行中?这是我在contextmenustrip中删除的代码
private void removeToolStripMenuItem_Click(object sender, EventArgs e)
{
DialogResult drty = MessageBox.Show("Remove student " +listView2.Items[listView2.FocusedItem.Index].SubItems[1].Text + " from class?","Remove Data",MessageBoxButtons.OKCancel,MessageBoxIcon.Question);
if (drty == DialogResult.OK)
{
conek.nonQuery("delete from class_info where class_id = '"+Convert.ToInt32(textBox5.Text)+"' and stud_id = '"+Convert.ToInt32(listView2.Items[listView2.FocusedItem.Index].SubItems[0].Text)+"'");
ListViewItem lrs = listView2.Items[listView2.FocusedItem.Index];
listView2.Items.Remove(lrs);
}
}
Run Code Online (Sandbox Code Playgroud)
您可能正在寻找的Opening
事件ContextMenuStrip
:
这样的东西会阻止它显示,直到你有一个选定的项目.
private void contextMenuStrip1_Opening(object sender, CancelEventArgs e)
{
e.Cancel = this.listView2.SelectedItems.Count <= 0;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1697 次 |
最近记录: |