【发布时间】:2015-07-08 20:59:41
【问题描述】:
我有一个ListView 控件,它以网格布局显示文件夹内的文件。我有一个包含三个 Items 的上下文菜单,其行为应该是这样的:
- 如果用户右键单击
ListView中的文件,上下文菜单将显示其所有 3 个Items - 如果用户右键单击
ListView中的空白区域,上下文视图的第一个Item应该是不可见的。
这是我添加我的事件和我的ListView 的MouseClick 事件代码的地方:
this.listviewFiles.MouseClick += new System.Windows.Forms.MouseEventHandler(this.listViewFiles_MouseClick);
private void listViewFiles_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
if (listviewFiles.FocusedItem.Bounds.Contains(e.Location) == true)
{
contextMenuFilesListbox.Items[0].Visible = false;
contextMenuFilesListbox.Items[1].Visible = false;
}
else
{
contextMenuFilesListbox.Items[0].Visible = true;
contextMenuFilesListbox.Items[1].Visible = true;
}
contextMenuFilesListbox.Show(Cursor.Position);
}
}
发生的情况是,当我右键单击 listViewFiles_MouseClick 事件中的空白区域时,根本不会触发。所以我无法在上下文菜单中恢复不可见的Item。
【问题讨论】:
-
尝试为列表视图使用透明背景
-
@HosseinNarimaniRad 是否有可能拥有一个 BackColor 属性为
Color.Transparent的ListView? -
我以为你正在开发 WPF!
标签: c# winforms listview events contextmenu