在C#中怎么模拟鼠标的双击事件?

sishen 2003-09-30 10:20:32
就是要用程序怎么实现,鼠标的双击事件。
不动鼠标,达到和鼠标双击同样的效果
...全文
982 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
Bob 2003-10-01
  • 打赏
  • 举报
回复
如果要实现上述的功能,调用TextBox的Focus方法就行了。
实现某种功能的方法很多,我现在是不知道你要实现的是什么功能?
你可以把你那个控件发给我,然后写明要实现的功能。
itfun@163.com
kuangren 2003-10-01
  • 打赏
  • 举报
回复
什么情况下驱动windows会处理~
showlie 2003-10-01
  • 打赏
  • 举报
回复
.Net是以事件进行驱动的,但是我不知道你要在什么情况下才去驱动双击,另外你也没有说清楚对于某个控件,如TextBox,中的什么事件去响应双击事件,比如当TextBox得到焦点时就模拟双击什么的。
你可以以委托的方式进行这方面的实现。某控件的某个事件与某个双击事件联系起来。如果没有你所需的控件的事件,如TextBox的OnDoubleClick事件,你也可以利用委托自己设计一个双击事件。
del_c_sharp 2003-10-01
  • 打赏
  • 举报
回复
引入mouseevent调用就可以,别太懒嘛
sishen 2003-10-01
  • 打赏
  • 举报
回复
我想的也是用API但是不知道在c#中怎么写?
有没有高手可以帮我写写!
calmzeal 2003-10-01
  • 打赏
  • 举报
回复
用API吧:mouseevent自己上摆渡一搜一大堆
sishen 2003-09-30
  • 打赏
  • 举报
回复
就比如说有一个TEXTBOX,你用鼠标点击它,焦点就可以进入到TEXTBOX中
我现在想用程序来实现这个点击的动作?不知道是否可以?
sishen 2003-09-30
  • 打赏
  • 举报
回复
但是我用的那个控件没有OnDoubleClick........
能不能向系统发一个鼠标的双击的消息?
Bob 2003-09-30
  • 打赏
  • 举报
回复
this.OnDoubleClick(e);
这句才是重点!
Bob 2003-09-30
  • 打赏
  • 举报
回复
其实说来说去,this.OnDoubleClick(e); 这句才是重点!
sishen 2003-09-30
  • 打赏
  • 举报
回复
我现在用的是其他的控件不是.NET自己的控件
鼠标双击它可以实现我需要的功能,但是我现在不能用鼠标,
所以想怎么可以用程序发一个双击消息.
好运 2003-09-30
  • 打赏
  • 举报
回复
学习
Bob 2003-09-30
  • 打赏
  • 举报
回复
不知道是不是你想要的结果?
Bob 2003-09-30
  • 打赏
  • 举报
回复
WinForm控件的OnDoubleClick是从System.Windows.Forms.Control继承下来,里面的实现是:

protected virtual void OnDoubleClick(EventArgs e)
{
EventHandler handler1;
if (this.CanRaiseEvents)
{
handler1 = ((EventHandler) base.Events[Control.EventDoubleClick]);
if (handler1 != null)
{
handler1.Invoke(this, e);
}
}
}

要在WinForm控件中编程实现调用DoubleClick事件,只需要调用该控件的OnDoubleClick方法。以下以Form窗体为例:

// 重载处理方法
protected override void OnDoubleClick(EventArgs e)
{
// 记得先调用基类的处理方法
base.OnDoubleClick(e);

// 这里加入自己要处理的事情
MessageBox.Show("DoubleClick!");
}

private void button1_Click(object sender, System.EventArgs e)
{
// 这里直接调用DoubleClick事件
this.OnDoubleClick(e);
}
jjcccc 2003-09-30
  • 打赏
  • 举报
回复
在你要用的时候,直接调用鼠标双击的事件过程;假设你要模拟From上一个Button1的双击事件,则:

//假设Button1的事件方法是Button1_Click(object sender,System.EventArgs e),则调用:

this.Button1_Click(Button1,new System.EventArgs());
WinAPI-Wrapper 模拟鼠标点击 用于模拟鼠标移动、点击、窗口操作等的Windows API包装器类。 API 下面是一些可用的方法的总结。有更多的方法和类,比下面列出的要多,但目的是要大致了解包装器能做什么。要查看关于特定方法的详细信息和参数的详细信息,请查看代码本身,因为它的注释很好。 Mouse.cs public static void LeftClick(); public static void RightClick(); public static void MiddleClick(); public static void LeftDown(); public static void LeftUp(); public static void RightDown(); public static void RightUp(); public static void MiddleDown(); public static void MiddleUp(); public static void Move(int x, int y); public static void LeftDrag(Point point1, Point point2, int interval, int lag); Window.cs public static bool DoesExist(string windowTitle); public static IntPtr Get(string windowTitle); public static IntPtr GetFocused(); public static void SetFocused(IntPtr hWnd); public static bool IsFocused(IntPtr hWnd); public static void Move(IntPtr hWnd, int x, int y); public static void Resize(IntPtr hWnd, int width, int height); public static void Hide(IntPtr hWnd); public static void Show(IntPtr hWnd); public static Rectangle GetDimensions(IntPtr hWnd); public static Size GetSize(IntPtr hWnd); public static Point GetLocation(IntPtr hWnd); public static string GetTitle(IntPtr hWnd); public static void SetTitle(IntPtr hWnd, string title); public static void Maximize(IntPtr hWnd); public static void Minimize(IntPtr hWnd); public static void Normalize(IntPtr hWnd); public static Bitmap Screenshot(IntPtr hWnd); public static void RemoveMenu(IntPtr hWnd); public static void Close(IntPtr hWnd); public static void DisableCloseButton(IntPtr hWnd); public static void DisableMaximizeButton(IntPtr hWnd); public static void DisableMinimizeButton(IntPtr hWnd); public static void EnableMouseTransparency(IntPtr hWnd); public static Point ConvertToWindowCoordinates(IntPtr hWnd, int x, int y); public static Point GetCoordinateRelativeToWindow(IntPtr hWnd); Desktop.cs public static Bitmap Screenshot(); public static void HideTaskBar(); public static void ShowTaskBar(); public static int GetWidth(); public static int GetHeight(); 使用 在windows api文件夹编译代码会产生一个.dll文件。任何引用这个.dll的ccode都可以使用包装器。
去年应朋友需要用C# 2.0写的一个按热键模拟鼠标单击操作程序,类似按键精灵,翻出来分享 实现功能:设定模拟鼠标单击/秒次的系统热键(热键自动保存),设定每秒单击的间隔毫秒数,按下设定好的热键程序便开始模拟鼠标单击操作,再按一次热键程序停止模拟并统计模拟鼠标单击的次数与时间误差。 演示程序:\HookSimulateMouse\bin\Debug\HookSimulateMouse.exe(需MS .NET Framework 2.0运行库支持) 程序界面: 1.设定时间间隔范围:1ms-1000ms,如:900ms 2.设置快捷键,如:Ctrl+Alt+W 将鼠标移至要模拟单击处按热键,于下一秒开始后计时,windowsXP不是实时系统,系统时间误差在20-55ms,而且通过程序获得(特别在CPU占用率高时)都会有延迟,要高精度需要凋API或者取CPU时钟频率,还要计算开机以来运行时长ms数,而且那是计时不是定时。 如:您设定系统时间ms数为900,于5点18分20秒569毫秒按下了快捷键,程序从下一秒0ms开始计时,在5点18分21秒900-908毫秒之间程序模拟一次鼠标单击(鼠标单击可能有8ms延迟) 以此类推直到您再按一次热键程序停止模拟并统计单击次数及毫秒误差(1s=1000ms) 按关闭X或双击桌面右下角系统托盘程序图标可隐藏/显示程序界面,至桌面右下角系统托盘 通过本C#程序源码可学习: 程序窗体最大化/最小化还原到系统托盘 调用系统DLL(user32.dll)设定全局热键控制程序,模拟鼠标单击操作 调用timer控件计时 Thread线程控制 FileStream文件流读写操作

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧