c# - c# dotnetbar 两个listboxadv同步滚动不起作用
问题描述
我有两个 ListBoxAdv1 和 ListBoxAdv2,我想同步它们滚动我使用此代码并向上或向下滚动但没有更新显示其他 ListBoxAdv 中的项目我该怎么办?请帮忙
我试试这个:
private void listBoxAdv1_Scroll(object sender, ScrollEventArgs e)
{
listBoxAdv2.VScrollBar.Value = listBoxAdv1.VScrollBar.Value;
}
private void listBoxAdv2_Scroll(object sender, ScrollEventArgs e)
{
listBoxAdv1.VScrollBar.Value = listBoxAdv2.VScrollBar.Value;
}
和这个:
private void listBoxAdv1_Scroll(object sender, ScrollEventArgs e)
{
listBoxAdv2.Focus();
ScrollEventArgs scrollEventArgs = new ScrollEventArgs(ScrollEventType.SmallIncrement, e.OldValue, e.NewValue, ScrollOrientation.VerticalScroll);
listBoxAdv2_Scroll(listBoxAdv2, scrollEventArgs);
}
private void listBoxAdv2_Scroll(object sender, ScrollEventArgs e)
{
}
解决方案
感谢您的许多回复!我找到解决方案:
bool Scrolling = true;
private void listBoxAdv1_Scroll(object sender, ScrollEventArgs e)
{
if (Scrolling == true)
{
Scrolling = false;
listBoxAdv2.BeginUpdate();
listBoxAdv2.AutoScrollPosition = new Point(listBoxAdv1.AutoScrollPosition.X, listBoxAdv1.AutoScrollPosition.Y);
listBoxAdv2_Scroll(sender, e);
listBoxAdv2.EndUpdate();
Scrolling = true;
}
}
private void listBoxAdv2_Scroll(object sender, ScrollEventArgs e)
{
if (Scrolling == true)
{
Scrolling = false;
listBoxAdv1.BeginUpdate();
listBoxAdv1.AutoScrollPosition = new Point(listBoxAdv2.AutoScrollPosition.X, listBoxAdv2.AutoScrollPosition.Y);
listBoxAdv1_Scroll(sender, e);
listBoxAdv1.EndUpdate();
Scrolling = true;
}
}
推荐阅读
- php - 打印数组元素php
- php - MySQLi 准备好的语句执行失败,注册表单
- jquery - 如何在 Firefox 上的视频 js 播放器中播放嵌入的 youtube 视频
- xamarin.forms - Xamarin 表单:如何在页面底部制作标签?
- php - 按顺序生成带有预定义字符的 5 位字母数字代码
- algorithm - 在无序数组中找到最小值的时间复杂度
- android - 如何在 Android 应用程序中存储对象列表?
- javascript - MongoDB关系子与父
- javascript - 如何在php中启动会话并销毁会话并再次启动新会话并销毁?
- javascript - Go Echo 没有从 Vue 获取 POST 正文