Огонь событие DoubleClick на ListView в C # - PullRequest
0 голосов
/ 22 ноября 2011

Можно ли программно запустить событие DoubleClick на ListView? Не нужно знать местоположение / подпись обработчика событий?

Ответы [ 4 ]

2 голосов
/ 22 ноября 2011

если я понял, что вы хотите вместо этого, сделав это:

private void MouseDoubleClick(object sender, EventArgs e)
{
   //some code on mouse double click
}

make:

private void MethodToExecuteOnDoubleClick()
{
  //some code on mouse double click
}

private void MouseDoubleClick(object sender, EventArgs e)
{
   MethodToExecuteOnDoubleClick();
}

и затем вы можете вызывать MethodToExecuteOnDoubleClick () всякий раз, когда вы хотите без необходимости вызывать событие doubleclick

1 голос
/ 22 ноября 2011

Я недавно писал об этом: Имитация клика ; это не настоящий щелчок, но он запускает обработчики событий. В блоге написано «OnClick», замените его на «OnDoubleClick», и все будет в порядке.

1 голос
/ 22 ноября 2011

Для симуляции щелчка мыши вы можете сделать что-то вроде этого:

using System;
using System.Windows.Forms;
using System.Runtime.InteropServices;

  //....

   [DllImport("user32.dll",CharSet=CharSet.Auto, CallingConvention=CallingConvention.StdCall)]
   public static extern void mouse_event(long dwFlags, long dx, long dy, long cButtons, long dwExtraInfo);

   private const int MOUSEEVENTF_LEFTDOWN = 0x02;
   private const int MOUSEEVENTF_LEFTUP = 0x04;
   private const int MOUSEEVENTF_RIGHTDOWN = 0x08;
   private const int MOUSEEVENTF_RIGHTUP = 0x10;


   public void DoMouseClick()
   {
      //Call the imported function with the cursor's current position
      int X = Cursor.Position.X;
      int Y = Cursor.Position.Y;
      mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, X, Y, 0, 0);
   }

   //...
}
0 голосов
/ 22 ноября 2011

Лучше создать инкапсулирующий элемент управления и обрабатывать любую логику, которая может вам понадобиться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...