Reputation: 3109
I'm creating a custom context menu using a WebBrowser inside a WindowsFormsHost. But for some reason, the click event I assign to the menu item is not firing. Other events I assign are.
private void Window_Loaded(object sender, RoutedEventArgs e)
{
System.Windows.Forms.WebBrowser browser = new System.Windows.Forms.WebBrowser();
browser.IsWebBrowserContextMenuEnabled = false;
System.Windows.Forms.ContextMenu contextMenu = new System.Windows.Forms.ContextMenu();
System.Windows.Forms.MenuItem menuItem = new System.Windows.Forms.MenuItem()
{
Text = "Add comment"
};
// not firing
menuItem.Click += new EventHandler(menuItem_Click);
// is firing
menuItem.Select += new System.EventHandler(menuItem_Click);
contextMenu.MenuItems.Add(menuItem);
browser.ContextMenu = contextMenu;
// is firing
browser.DocumentCompleted += new System.Windows.Forms.WebBrowserDocumentCompletedEventHandler(browser_DocumentCompleted);
// is firing
browser.HandleCreated += new System.EventHandler(browser_HandleCreated);
windowsFormsHost.Child = browser;
browser.DocumentText = "Test";
}
void browser_HandleCreated(object sender, EventArgs e)
{
throw new NotImplementedException();
}
void browser_DocumentCompleted(object sender, System.Windows.Forms.WebBrowserDocumentCompletedEventArgs e)
{
throw new NotImplementedException();
}
void menuItem_Click(object sender, EventArgs e)
{
throw new NotImplementedException();
}
What am I missing?
Upvotes: 1
Views: 550
Reputation: 11
I know this question is old, but I just ran into the same problem. I fixed it by using a ContextMenuStrip instead of a ContextMenu.
System.Windows.Forms.ContextMenuStrip webBrowserMenu = new System.Windows.Forms.ContextMenuStrip();
System.Windows.Forms.ToolStripMenuItem refreshItem = new System.Windows.Forms.ToolStripMenuItem("Refresh");
refreshItem.Click += new System.EventHandler(refreshMenuItem_Click);
webBrowserMenu.Items.Add(refreshItem);
webBrowser1.ContextMenuStrip = webBrowserMenu;
Upvotes: 1