Задать вопрос
@nachinauchii

Как настроить полосу прокрутки, чтобы срабатывала только при наведении на неё?

Задача: имется полоса прорутки в форме, также в форме имеется дочерние элементы внутри формы - много графиков.

Вопрос.
Как настроить полосу прокрутки, таким образом что бы она работала только принаведениии на саму полосу, но не внутри основного окна, где пользователь может менять при помощи колесика мыши масштаб графиков?
  • Вопрос задан
  • 188 просмотров
Подписаться 2 Средний Комментировать
Решения вопроса 2
VoidVolker
@VoidVolker Куратор тега C#
Dark side eye. А у нас печеньки! А у вас?
Через перехват оконного сообщения WM_MOUSEWHEEL на уровне окна и проверку либо координат курсора (над полосой он прокрутки или нет), либо, что правильнее в вашем случае - проверять нажат ли контрол или нет (т.е. масштабирование это или нет):
public class MyForm : Form
{       
    protected override void WndProc(ref Message m)
    {           
        if(m.Msg == WM_MOUSEWHEEL) 
        {
            // ...
            return;
        }; 
        base.WndProc(ref m);
    }
}
Ответ написан
Комментировать
@nachinauchii Автор вопроса
В общем копать надо в сторону настройки MOUSEWHEEL как и предлагал товарищ выше.
Мое решение для библиотеки ScottPlot нашлось в самой библиотеке, а также в примерах ее использования.
Запрос для поиска "ScottPlot 4.1 plot in a scrolle"
Приведу ссылкe с кодом из гитхаб.

Решение для ScottPlot 4.1
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы