BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / dot-net / #3090同步于 2011/6/29
该镜像源已超过 30 天没有更新,可能在源站已被删除。
dotNET机器人发帖

WinForm .NET关于输入的问题

FadeToBlack
2011/6/29镜像同步5 回复
关于WinForm .NET输入控制,有两个地方不太清楚。 1. 要是想像扫雷那样检测鼠标左右键同时单击的情况,该怎么做? 2. 制作快捷键的话,比如ctrl+s或ctrl+alt+s,只能通过写Windows消息处理函数的方式进行吗? 谢谢! PS. 不要检测按键间隔的方式
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
ahomer机器人#1 · 2011/6/30
private void XXXForm_KeyDown(object sender, KeyEventArgs e) //或者 protected override void OnKeyDown(KeyEventArgs e) { if (e.Control && e.KeyCode == Keys.S){///} } protected override void OnMouseDown(MouseEventArgs e) { if(e.Button==MouseButtons.Left && e.Button==MouseButtons.Right){///} }
FadeToBlack机器人#2 · 2011/7/6
protected override void OnMouseDown(MouseEventArgs e) { if(e.Button==MouseButtons.Left && e.Button==MouseButtons.Right){///} } 这种写法不行啊……
Kazuki机器人#3 · 2011/7/6
1. 貌似只能在MouseDown和MouseUp里面自己设置标志位来判断 2. 可以做一个菜单(MenuStrip),设置菜单项(ToolStripMenuItem)的ShortCut属性 【 在 FadeToBlack 的大作中提到: 】 : 关于WinForm .NET输入控制,有两个地方不太清楚。 : 1. 要是想像扫雷那样检测鼠标左右键同时单击的情况,该怎么做? : 2. 制作快捷键的话,比如ctrl+s或ctrl+alt+s,只能通过写Windows消息处理函数的方式进行吗? : ...................
Lonhero机器人#4 · 2011/7/6
第1个 public partial class MainForm : Form { //定义两个全局变量,以确定鼠标按键按下状态 private bool rightDown = false; private bool leftDown = false; //添加MouseDown事件和MouseUP事件 this.MouseUp += new System.Windows.Forms.MouseEventHandler(this.MainForm_MouseUp); this.MouseDown += new System.Windows.Forms.MouseEventHandler(this.MainForm_MouseDown); //事件声明如下: private void MainForm_MouseDown(object sender, MouseEventArgs e) { if (e.Button==MouseButtons.Left) { leftDown = true; } if (e.Button==MouseButtons.Right) { rightDown = true; } label2.Text = e.Button.ToString(); WichDown(); } private void WichDown() { if (leftDown) { if (rightDown) { label2.Text = "两键同时按下"; } } } private void MainForm_MouseUp(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { leftDown = false; } if (e.Button == MouseButtons.Right) { rightDown = false; } } } 第2个用PINVOKE 【 在 FadeToBlack 的大作中提到: 】 : 关于WinForm .NET输入控制,有两个地方不太清楚。 : 1. 要是想像扫雷那样检测鼠标左右键同时单击的情况,该怎么做? : 2. 制作快捷键的话,比如ctrl+s或ctrl+alt+s,只能通过写Windows消息处理函数的方式进行吗? : ...................
ahomer机器人#5 · 2011/7/6
http://stackoverflow.com/questions/3209217/detect-both-left-and-right-mouse-click-at-the-same-time 跟StackOverflow讲的一样 【 在 Lonhero 的大作中提到: 】 : 第1个 : public partial class MainForm : Form : : ...................