.NET Core Windows Forms не срабатывает событие Scroll на форме
Создаю пустое Windows Forms приложение по шаблону Windows Forms App (.NET) (не старое Windows Forms App (.NET Framework)). Добавляю на форму событие Scroll, но оно не отрабатывает. Почему?
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Scroll(object sender, ScrollEventArgs e)
{
Text = DateTime.Now.ToString();
}
}
Ответы (1 шт):
Автор решения: Zergatul
→ Ссылка
Получилось вот так. Событие не срабатывает скорее всего потому что свойство CanFocus формы равняется false.
protected override void WndProc(ref System.Windows.Forms.Message m)
{
const int WM_MOUSEWHEEL = 0x020A;
const int MK_CONTROL = 0x0008;
if (m.HWnd == Handle && m.Msg == WM_MOUSEWHEEL)
{
int wParam = (int)m.WParam.ToInt64();
bool control = (wParam & 0xFFFF) == MK_CONTROL;
int delta = wParam >> 16;
if ((delta & 0x8000) != 0)
delta |= unchecked((int)0xFFFF0000);
delta /= 120;
// используем delta как-то, control - зажат ли Ctrl
}
else
{
base.WndProc(ref m);
}
}