получил странный.
У меня есть класс, который содержит ContextMenuStrip, и при вызове .Show для него ничего не происходит.
Я попытался записать в лог-файл, как вы можете видеть ниже, и первая строка была нажата, но как только она попадает в строку, где я пытаюсь ее показать, программа, похоже, работает так, как будто она встретила return. 1003 *
Вот класс:
class AnywhereMenu
{
frmMain parent;
KeyboardHook hook = new KeyboardHook();
ContextMenuStrip anymenu = new ContextMenuStrip();
public AnywhereMenu(frmMain _parent)
{
parent = _parent;
populateContextMenu();
}
void populateContextMenu()
{
ToolStripMenuItem mnuTasks = new ToolStripMenuItem();
ToolStripMenuItem mnuComments = new ToolStripMenuItem();
ToolStripMenuItem mnuTools = new ToolStripMenuItem();
mnuTasks.Text = "&Tasks";
mnuTasks.DropDownItems.Add("Item1", null, new EventHandler(TaskHandler));
mnuTasks.DropDownItems.Add("Item2", null, new EventHandler(TaskHandler));
mnuComments.Text = "&Comments";
mnuComments.DropDownItems.Add("Item1", null, new EventHandler(CommentHandler));
mnuComments.DropDownItems.Add("Item2", null, new EventHandler(CommentHandler));
mnuComments.DropDownItems.Add("Item3", null, new EventHandler(CommentHandler));
mnuTools.Text = "Links//Tools";
mnuTools.DropDownItems.Add("Item1", null, new EventHandler(ToolHandler));
mnuTools.DropDownItems.Add("Item2", null, new EventHandler(ToolHandler));
mnuTools.DropDownItems.Add("Item3", null, new EventHandler(ToolHandler));
anymenu.Items.Add(mnuTasks);
anymenu.Items.Add(mnuComments);
anymenu.Items.Add(mnuTools);
}
public void MenuShow()
{
Settings.Save.debugLog("Displaying context menu!");
anymenu.Show(Cursor.Position);
return;
}
}
И код, который его вызывает:
if (keyChar == "Space")
{
Settings.Save.debugLog("Entered Context Menu Block");
anyMenu.MenuShow();
Settings.Save.debugLog("Exiting Context Menu Block");
}
Теперь в журнале отладки будет отображаться строка: «Введен блок контекстного меню», но не «Отображение контекстного меню!» или «Выход из блока контекстного меню». Есть идеи? Спасибо: -)
Редактировать - я забыл добавить, что он отлично работает на компьютере, на котором я его разработал, но на любом другом компьютере наблюдается описанное выше поведение. Не уверен, что здесь происходит: - (