Подскажите как прокрутить Panel (роликом мыши) через AutoScroll широким шагом, чтобы ширина Panel делилась на две части. К примеру ширина Panel до сужения равна 800 точек, и должна поделиться на 2 при прокрутке. Чтобы в сжатом состоянии на 400 точек, сразу попадать на вторую часть Panel
Растянутое состояние (для добавления чекбоксов)
Сжатое состояние (какими должны быть размеры приложения)
Можно сделать вот так:
private void Panel1_MouseWheel(object sender, MouseEventArgs e)
{
var stepLength = panel1.Width;
if (e.Delta < 0)
{
if (panel1.HorizontalScroll.Value + stepLength < panel1.HorizontalScroll.Maximum)
{
panel1.HorizontalScroll.Value += stepLength;
}
else
{
panel1.HorizontalScroll.Value = panel1.HorizontalScroll.Maximum;
}
}
if (e.Delta > 0)
{
if (panel1.HorizontalScroll.Value - stepLength > panel1.HorizontalScroll.Minimum)
{
panel1.HorizontalScroll.Value -= stepLength;
}
else
{
panel1.HorizontalScroll.Value = panel1.HorizontalScroll.Minimum;
}
}
}
Будет лишний скролл в конце/начале прокрутки если соотношение будет не ровно 2, а, например, 2.1
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости