面板 - ScrollBars可见事件

时间:2013-02-08 16:17:32

标签: c# .net vb.net winforms

我可能正在寻找错误的问题,但我无法找到答案。

我有一个AutoScroll设置为true的面板。控件将动态添加到面板中。我需要在滚动条变得可见时触发事件,但我无法找到这样的事件。

任何建议都表示赞赏。

更多详情:

  • 这是一个WinForms项目。
  • 面板是一个面板System.Windows.Forms.Panel。
  • 该面板可见。
  • AutoScroll设置为true。
  • 当AutoScroll使滚动条可见时,我想执行一些代码。

2 个答案:

答案 0 :(得分:1)

感谢@ MUG4N对原始问题的评论,这是解决方案。我目前的项目是VB.Net,解决方案也是如此。

canvas是面板的名称。

Private Sub canvas_Paint(sender As Object, e As PaintEventArgs) Handles canvas.Paint
     If Me.canvas.VerticalScroll.Visible Then
          ' Do stuff here
     End If
End Sub

要检查水平滚动,请使用Me.canvas.HorizontalScroll.Visible

重要

确保你做了一些检查以避免无限循环。

答案 1 :(得分:0)

    private void Form1_Load(object sender, EventArgs e)
    {
        Int32 x = 20;
        Int32 y = 20;
        for (Int32 i = 0; i < 20; i++)
        {
            Button btn = new Button();
            btn.Name = "btn" + i.ToString();
            btn.Location = new Point(x, y);
            x = x + 20;
            panel1.Controls.Add(btn);
        }
        //call(1, new List<long> { 1, 2, 3, 4 });
    }
    private void **panel1_Scroll**(object sender, ScrollEventArgs e)
    {
        MessageBox.Show("scroll");
    }




 panel control have its own method "Scroll" see events of panel control and find the "Scroll"....