Я использую Visual Studio 2010 (C #) и приложение Windows Forms.
У меня есть два дерева рядом, и я выяснил, как синхронизировать прокрутку с помощью кнопок вверх / вниз на полосе прокрутки, но когда я использую ползунок, он не перемещает другое дерево. Я взял пример списка просмотра, который работает, но тот же код не работает для представлений дерева.
Пока у меня есть, в основной форме:
[DllImport("User32.dll")]
public static extern int SendMessage(IntPtr hWnd, uint Msg, uint wParam, uint lParam);
private void myListBox1_Scroll(ref Message m)
{
SendMessage(myListBox2.Handle, (uint)m.Msg, (uint)m.WParam, (uint)m.LParam);
}
Я создал элемент управления:
public partial class MyTreeView : TreeView
{
public MyTreeView()
{
InitializeComponent();
}
public event ScrollEventHandler Scroll;
public delegate void ScrollEventHandler(ref Message m);
private const int WM_VSCROLL = 0x115;
protected override void WndProc(ref System.Windows.Forms.Message m)
{
if (m.Msg == WM_VSCROLL)
if (Scroll != null)
{
Scroll(ref m);
}
base.WndProc(ref m);
}
}
который я добавляю два к форме.
Я могу использовать тот же код, чтобы иметь listivew для управления деревом, и это будет работать, если вы перетаскиваете ползунок, но наоборот, это работает только с кнопками вверх-вниз.