Я получаю некоторое странное поведение от 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