dmc1989
@dmc1989

События скрола в c#?

Есть ли возможность отловить событие скрола на элементе формы, и вставить значение в label?
Пытаюсь сделать, но ничего не происходит... Что я делаю не так?

private void Form1_Scroll(object sender, ScrollEventArgs e)
        {
            Graphics g = pictureBox1.CreateGraphics();

            int xWidth = pictureBox1.Width;
            int yHeight = pictureBox1.Height;

            int x;
            int y;

            if (e.ScrollOrientation == ScrollOrientation.HorizontalScroll)
            {
                x = e.NewValue;
                y = vScrollBar1.Value;
            }
            else //e.ScrollOrientation == ScrollOrientation.VerticalScroll
            {
                y = e.NewValue;
                x = hScrollBar1.Value;
            }

            g.DrawImage(pictureBox1.Image,
              new Rectangle(0, 0, xWidth, yHeight),  //where to draw the image
              new Rectangle(x, y, xWidth, yHeight),  //the portion of the image to draw
              GraphicsUnit.Pixel);

            pictureBox1.Update();

            label1.Text = x.ToString();
        }
  • Вопрос задан
  • 173 просмотра
Пригласить эксперта
Ответы на вопрос 1
mindtester
@mindtester Куратор тега C#
http://iczin.su/hexagram_48
1 - скоролятся обычно контенты контейнеров а не форм. убедитесь что вы вешаете обработчик действительно на тот контейнер, в котором что то скролите
2 - используйте точки прерывания, что бы убедиться, что вы вообще попадаете в данный обработчик
3 - когда то давно, я бы, возможно, начал с размещения строки типа label1.Text = "bingo!"; самой первой в обработчике, и лишь потом бы усложнял логику
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы