В Visual Studio 2022, C#, с простым кодом, как показано ниже, если вы нажмете правую кнопку мыши, WINFORM просто закроется, но событие мыши все еще активно и запускает событие правой мыши на рабочем столе Windows и отображает соответствующее контекстное меню:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
MouseDown += Form1_MouseDown;
}
private void Form1_MouseDown(object? sender, MouseEventArgs e)
{
Close();
}
}
Есть ли способ предотвратить это, не показывая контекстное меню окон?
Кстати, к Visual Studio это не имеет никакого отношения.





Вы используете неправильное событие.
В Winforms при нажатии кнопки мыши вы получаете следующие события в следующем порядке:
Событие MouseDown срабатывает первым, но не единственным.
Поскольку вы закрываете форму, наведя курсор мыши, следующие события обрабатываются операционной системой, поэтому вы получаете контекстное меню в результате события MouseUp, когда вы нажимаете правую кнопку.
Если вы хотите обработать это правильно, вы можете использовать событие MouseClick или MouseUp.
Для получения дополнительной информации прочитайте документацию.
Некоторые типы элементов управления WİnForm (например, ToolStripButton) не имеют члена MouseClick, поэтому наиболее подходящим является использование MouseUp, это помогло с решением, спасибо
Я считаю, что без каких-то действительно противных хуков вы не сможете... просто использовать MouseUp...