예제 #1
0
 private static void ListViewMouseDown(object sender, MouseEventArgs e)
 {
     if (sender is ListView listview)
     {
         LvHittestInfo lvHitInfo = new LvHittestInfo();
         Point         p         = new Point(e.X, e.Y);
         lvHitInfo.pt = p;
         try
         {
             int id = SendMessage(listview.Handle, 0x1000 + 18, -1, ref lvHitInfo);
             if (e.Button == MouseButtons.Right)
             {
                 InvokeRightClick(listview, id);
             }
             else if (e.Button == MouseButtons.Left && lvHitInfo.flags == 0x50000000)
             {
                 ToggleGroupCollapseState(listview.Handle, id);
             }
         }
         catch (Exception ex)
         {
             Trace.WriteLine(ex.Message + Environment.NewLine + ex.StackTrace);
         }
     }
 }
예제 #2
0
 static extern int SendMessage(IntPtr window, int message, int wParam, ref LvHittestInfo lParam);