我从 a 得到一些不稳定的行为ContextMenuStip
:
private void lstModules_MouseMove(object sender , MouseEventArgs e)
{ mouse = e.Location; }
private void lstModules_MouseDown(object sender , MouseEventArgs e)
{
ListViewItem item = null;
if((hitTest = lstModules.HitTest(mouse)) != null)
item = hitTest.Item;
switch (e.Button)
{
case MouseButtons.Right:
if (item != null)
{
// valid item selection
ShowModuleDetails(item.Name);
lstModules.ContextMenuStrip = mnuContext_Module;
}
else
{
// right-click - no item selection
lblModuleDetails.Text = string.Empty;
lstModules.ContextMenuStrip = mnuContext_Desktop;
}
lstModules.ContextMenuStrip.Show(lstModules , mouse);
break;
case MouseButtons.Left:
if (item != null)
{ ShowModuleDetails(item.Name); }
break;
}
}
private void ShowModuleDetails(string modName)
{
// get module details from dictionary
lblModuleDetails.Text = Modules[modName].Details;
}
- 显示上下文菜单时未正确选择列表视图中的项目。换句话说,当项目被选中时,一个详细的字符串值会显示在一个标签控件中。
- 如果上下文菜单可见,并且选择了一个项目,则项目详细信息不会更改。
- 上下文菜单位置短暂出现在旧鼠标位置,然后移动到新鼠标位置。
上下文菜单有什么问题吗?