在c#的ListView上触发双击事件
本文关键字:双击 事件 ListView | 更新日期: 2023-09-27 18:15:20
是否有可能以编程方式在ListView
上触发DoubleClick
事件?不需要知道事件处理程序的位置/签名?
如果我明白你想要什么,不如这样做:
private void MouseDoubleClick(object sender, EventArgs e)
{
//some code on mouse double click
}
:
private void MethodToExecuteOnDoubleClick()
{
//some code on mouse double click
}
private void MouseDoubleClick(object sender, EventArgs e)
{
MethodToExecuteOnDoubleClick();
}
然后你可以随时调用MethodToExecuteOnDoubleClick()而不需要触发双击事件
我之前写过一篇博文:模拟点击;它不是真正的单击,但它触发事件处理程序。博客说"OnClick",把它换成"OnDoubleClick",你应该没问题。
对于模拟鼠标点击,您可以这样做:
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);
}
//...
}
最好创建一个封装控件,并在其中处理您可能需要的任何逻辑。