Member 13801581 Ответов: 1

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)
{
     
}

1 Ответов

Рейтинг:
0

Member 13801581

спасибо за большой отклик!
я нахожу решение:

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;
           }
       }