Panel--滚动条可见事件

本文关键字:事件 滚动条 Panel-- | 更新日期: 2023-09-27 17:58:35

我可能在搜索错误的问题,但找不到答案。

我有一个AutoScroll设置为true的面板。控件将动态添加到面板中。当滚动条可见时,我需要启动一个事件,但我找不到这样的事件。

欢迎提出任何建议。

更多详细信息:

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

Panel--滚动条可见事件

感谢@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

重要

一定要进行一些检查,以避免出现无限循环。

    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"....