Panel -- ScrollBars 可见事件
Posted
技术标签:
【中文标题】Panel -- ScrollBars 可见事件【英文标题】:Panel -- ScrollBars Visible Event 【发布时间】:2013-01-24 11:20:09 【问题描述】:我可能正在寻找错误的问题,但我无法找到答案。
我有一个将 AutoScroll 设置为 true 的面板。控件被动态添加到面板中。当滚动条可见时,我需要触发一个事件,但我找不到这样的事件。
欢迎提出任何建议。
更多细节:
这是一个 WinForms 项目。 面板是一个面板,System.Windows.Forms.Panel。 面板可见。 AutoScroll 设置为 true。 我想在 AutoScroll 使滚动条可见时执行一些代码。【问题讨论】:
你能详细解释一下你想做的事情吗?您使用的是panel
还是update panel
..?这是winforms
还是web forms?
你的意思是当表格可见时?或者您是否根据Button Click Event
设置面板可见?请澄清
@DJKRAZE,我提供了更多细节。具体到您的问题,1)Winforms,2)不,我的意思是当滚动条可见时,3)不,面板始终可见
您需要检查 OnPaint 方法,如下所示:***.com/questions/4305011/…
感谢@MUG4N,我发布了解决方案的基础知识作为答案。
【参考方案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
重要
确保进行一些检查以避免无限循环。
【讨论】:
【参考方案2】: 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"....
【讨论】:
您更正了滚动方法,但是当表单滚动时会触发,这不是我想要的。以上是关于Panel -- ScrollBars 可见事件的主要内容,如果未能解决你的问题,请参考以下文章
【C# panel】怎样能使填充窗体后的panel响应一下鼠标事件呢?