からいくつかの不安定な動作が発生してい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;
}
- コンテキスト メニューが表示されている場合、リスト ビューの項目が正しく選択されません。つまり、項目が選択されると、詳細文字列値がラベル コントロールに表示されます。
- コンテキスト メニューが表示され、アイテムが選択されている場合、アイテムの詳細は変更されません。
- コンテキスト メニューの場所が、古いマウスの場所に一時的に表示された後、新しいマウスの場所に移動します。
コンテキスト メニューで間違っていることはありますか?