2
我从ContextMenuStip
得到一些奇怪的行为:古怪行为从的ContextMenuStrip
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;
}
- 在列表视图中的项目时上下文菜单显示不正确选择。换句话说,当选择该项目时,详细字符串值将显示在标签控件中。
- 如果上下文菜单可见并且选择了某个项目,则项目详细信息不会更改。
- 上下文菜单位置短暂出现在旧的鼠标位置,然后移动到新的鼠标位置。
有没有我做错了上下文菜单?
显然,你是一个天才。我想我在这种情况下看不到树木的森林...... thx! – IAbstract 2010-02-06 16:45:49