У меня есть панель в winform. Я хочу захватить как прокрутку, так и колесико мыши для панели. Для обоих сценариев я хочу проверить положение полосы прокрутки.Получение позиции прокрутки из события колеса мыши
Когда полоса прокрутки находится внизу (в конце прокрутки ...), управление должно запускать событие.
Я сделал это для Panel.Scroll так:
private void Panel1_Scroll(object sender, ScrollEventArgs e)
{
if (e.NewValue == Panel1.VerticalScroll.Maximum - Panel1.VerticalScroll.LargeChange+1)
{
//do some operation
}
}
Но MouseEventArgs нет значения (e.newvalue), чтобы указать положение полосы прокрутки.
Как я могу получить положение полосы прокрутки от события колеса мыши?
Также, согласно моему требованию, оба вызова вызова имеют такую же логическую реализацию, поэтому я хочу написать логику один раз.
Как я могу это достичь?
Вы не можете конечно. Событие MouseWheel получит событие Scroll, если оно фактически прокручивает панель, поэтому вам не нужно помогать. Панель должна содержать один или несколько элементов управления, которые могут получить фокус, или вы должны создать [панель управления] (http://stackoverflow.com/a/3562449/17034), которые могут получить фокус. Остерегайтесь шелушащегося поведения полос прокрутки из-за большого размера пальца, вы должны использовать> = вместо ==. –