ContextMenu selected menu item index

W

Webermax

Hello,

I want to retrieve the index of the selected item in a context menu
synchronously. I coded something like this :

MyContextMenu mcm;
mcm = new MyContextMenu ();
mcm.MenuItems.Add (new MenuItem ("hello"));
mcm.MenuItems.Add (new MenuItem ("world"));
mcm.Show ();
switch (mcm.SelectedMenuItemIndex.Index)
{
// "hello" selected
case 0 :
break;
// "world" selected
case 1 :
break;
}

So I created this class :

public class MyContextMenu : ContextMenu
{
private MenuItem _selectedMenuItem;
public PointContextMenu ()
{
_selectedMenuItem = null;
}
public MenuItem SelectedMenuItem
{
get { return (_selectedMenuItem); }
set { _selectedMenuItem = value; }
}
}

private void MyContextMenuItem_Click (object sender, EventArgs e)
{
MenuItem mi;
mi = (MenuItem) sender;
((MyContextMenu) (mi.Parent)).SelectedMenuItem = mi;
}

But this won't work because MyContextMenuItem_Click is called *AFTER*
mcm.Show () returns. Any help ?
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top