当我在c#中添加代码来滚动面板事件时,我发现了一种奇怪的行为。
我添加了一个面板并在面板内(auto-Scroll = true)有一个分组框。
如下图所示,单击滚动可将滚动条移动一小段距离。
同时,当我在事件中添加一个消息框以显示滚动发生的通知时,会弹出多个消息框。
为什么?
我已经计划在滚动时添加一些逻辑,但如果它多次出现,那么它是如何实现的呢?
这是事件处理程序:
private void panel1_Scroll_1(object sender, ScrollEventArgs e)
{
MessageBox.Show("ScrollBar is clicked");
}
答案 0 :(得分:3)
这就是滚动事件的工作原理,它在面板滚动时会多次触发。
尝试ScrollEventArgs.Type EndScroll
,这应该是最后一次滚动事件。
private void panel1_Scroll_1(object sender, ScrollEventArgs e)
{
if (e.Type == ScrollEventType.EndScroll)
MessageBox.Show("ScrollBar is clicked");
}
如果以上情况对您的案例没有帮助,您需要使用this thread中解释的方法之一处理这些多重事件。