У меня есть приложение, которое в основном работает через ContextMenuStrip от NotifyIcon.
Существует несколько уровней инструментов ToolStripMenuItems, и пользователь может пройти через них.
Проблема в том, что когда пользователь имеет два экрана, MenuItems переходят на второй экран, когда пространство не доступно. как так:Предотвращение перетаскивания ToolStripMenuItems во второй экран
Как я могу заставить их остаться на том же экране? Я попытался выполнить поиск в Интернете, но не нашел подходящего ответа.
Вот пример кусок кода я использую, чтобы проверить эту Senario:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
var resources = new ComponentResourceManager(typeof(Form1));
var notifyIcon1 = new NotifyIcon(components);
var contextMenuStrip1 = new ContextMenuStrip(components);
var level1ToolStripMenuItem = new ToolStripMenuItem("level 1 drop down");
var level2ToolStripMenuItem = new ToolStripMenuItem("level 2 drop down");
var level3ToolStripMenuItem = new ToolStripMenuItem("level 3 drop down");
notifyIcon1.ContextMenuStrip = contextMenuStrip1;
notifyIcon1.Icon = ((Icon)(resources.GetObject("notifyIcon1.Icon")));
notifyIcon1.Visible = true;
level2ToolStripMenuItem.DropDownItems.Add(level3ToolStripMenuItem);
level1ToolStripMenuItem.DropDownItems.Add(level2ToolStripMenuItem);
contextMenuStrip1.Items.Add(level1ToolStripMenuItem);
}
}
Попробуйте добавить его с помощью конструктора форм и посмотреть, какой код сгенерирован. Может быть, вы просто пропустите одно задание. Поведение выглядит странно, например, если «падение уровня 3» не может определить родителя (придерживаться того же экрана, что и его родительский). – Sinatr
Это конструктор форм. Я просто немного переработал его для удобства чтения. (Преобразование полей в локальные и удаление ненужных строк) – atlanteh
В Winforms есть определенный код, который должен помешать этому. Это выглядит немного странно, проверьте, все ли еще происходит * второе * время, когда вы открываете контекстное меню. Если это не так, я могу опубликовать обходной путь. –