Visual スタジオ 2010(C#)とWindowsフォームアプリケーションを使用しています。スライダーを使用して2つのツリービューでスクロールを同期させる方法
2つのツリービューが並べてあり、スクロールバーの上下ボタンを使用してスクロールを同期する方法を考えましたが、スライダを使用すると他のツリービューは移動しません。私は動作するlistviewの例を取ったが、同じコードはtreeviewsのために働かない。
これまでのところ私は、メインフォームでいる:
[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);
}
}
私は、フォームへの2を追加しました。
同じコードを使用してlistivewでツリービューを制御することができます。スライダをドラッグすると機能しますが、逆に上のボタンでのみ機能します。
誰もが。ネットはhttp://www.pinvoke.net/を非常に便利に見いだします。それは素晴らしいリソースであり、私はそれが非常に貴重であることを発見しました。 –