Скачивалка музыки из контакта. Продолжение.
Доработал программу для скачивания музыки, добавил возможность выбирать скачиваемые треки.
В процессе наткнулся на досадный баг: в Windows 7 при даблклике на чекбокс, его состояние меняется, но события не генерируются. Гугл выдал такое решение:
public class NewTreeView : TreeView { protected override void WndProc(ref Message m) { if (m.Msg == 0x203) m.Result = IntPtr.Zero; else base.WndProc(ref m); } }
Этот код просто гасит даблклик на TreeView. События не генерируются, но и галочки не скачут.
Я его немного доработал:
public class NewTreeView : TreeView { protected override void WndProc(ref Message m) { if ((m.Msg == 0x203) && (this.HitTest(this.PointToClient(Cursor.Position)).Location == TreeViewHitTestLocations.StateImage)) m.Result = IntPtr.Zero; else base.WndProc(ref m); } }
Теперь даблклик на надписи разворачивает/сворачивает его.