c#设计一个鼠标事件游戏,当鼠标靠近图标,图表自动躲避球,现实抓不到我

详解C#鼠标事件的处理机制
C#鼠标事件包括鼠标的很多操作,比如为用户提供鼠标的右键单击功能、右键拖拽等等。处理C#鼠标事件比较简单,只要设置好属性,点击右键就会出现菜单,进一步右键拖拽就涉及到时间处理。过去用C++/MFC开发程序时,常常为用户提供鼠标的右键单击功能,如今在.NET框架中使用C#,也想在程序中提供鼠标右键单击功能,比如,在文本框、窗格、标签以及主窗口背景上使用鼠标右键。毕竟C#不是C++/MFC,那么如何处理C#鼠标事件呢?本文下面将专门探讨这个问题。在.NET框架下编程是非常容易的一件事情,有时候容易得连C++程序员想都想不到。这主要是因为用C++编写代码常常需要“硬工夫”。所谓“硬工夫”,也就是很多细节都要自己考虑和处理。但使用C#则不然。如果你想显示上下文菜单,完全没有必要去和事件参合。只要设置控制的ContextMenu属性即可,就象下面这样:ContextMenumyContextMenu=... myControl.ContextMenu=myContextM就这么简单。只要按照上述方法设置好属性,当用户单击右键时,菜单便会自动显示出来。此外,如果你想进一步实现右键拖拽,这才涉及到事件处理。在MFC中,你会自然而然想到用OnRButtonDown和OnRButtonUp实现,但是那不是Windows窗体(Forms)的工作方式。虽然许多窗口类确实提供了可以改写的虚拟函数来处理常用消息(如:Form.OnActivated和Form.OnClosed),但是在.NET框架中编程,你必须要学会用事件来思考,而且要了解一个类提供了哪些事件。下面这个表列出了被Control类提供的比较常用的事件:(表一) ClickHelpRequestedMouseLeaveContextMenuChangedInvalidatedMouseMoveDoubleClickKeyDownMouseUpDragDropKeyPressMouseWheelDragEnterKeyUpMoveDragLeaveLayoutPaintDragOverLeaveParentChanged EnabledChangedLostFocusResize EnterMouseDownSizeChanged FontChangedMouseEnterStyleChanged GotFocusMouseHoverTextChanged注意表中用黑体标出的事件,这些事件顾名便可思意:MouseDown、 MouseEnter、 MouseHover、 MouseLeave、 MouseMove 和 MouseUp,如果你想要处理右键按下事件,可以安装MouseDown 事件处理例程,用MouseEventArgs.Button == MouseButtons.Right 检查 MouseEventArgs,下面的代码段示范了如何来做: publicclassMyControl:Control { //构造函数 publicMyControl(){ //安装右键按下事件处理器 this.myctl1.MouseDown+= newMouseEventHandler(this.OnMouseDown); } //处理例程 privatevoidOnMouseDown(objectsender,MouseEventArgse){ if(e==MouseButtons.Right) //dosomething } } 表一里有三个有用的鼠标事件是在MFC中不能直接处理的:MouseEnter、 MouseHover 和MouseLeave。在Win32 里,要处理这些事件必须通过专门的TrackMouseEvent 函数。.NET框架中,每当鼠标进入或离开特定控制时便会触发MouseEnter 和MouseLeave,当你想在鼠标移动到控制上时使控制呈高亮状态,这些事件相当有用,例如在浏览器中高亮显示链接。当鼠标移动到控制上后,在预先确定好的时间里(这个时间由 SystemParametersInfo(SPI_GETMOUSEHOVERTIME)) 指定),.NET 框架会激活 MouseHover。它在 Tooltips 和其它类似的定时弹出式功能应用中广泛使用。这些鼠标事件和大家所熟悉的Click 事件有何关系呢?我想可以这么认为,Click属于层次较高的逻辑事件,而鼠标事件的级别相对较低,例如,不管用户按下的是左键还是右键,Forms都触发Click 事件,而文本框只能触发左键的Click事件。表二中列出了不同种类的控制其Click事件的含意。(表二)由 Click 激发的事件 控制或控件鼠标左键单击鼠标左键双击鼠标右键单击鼠标右键双击鼠标中键单击鼠标中键双击MonthCalendar, DateTimePicker, RichTextBox, HScrollBar, VScrollBarNoneNoneNoneNoneNoneNoneButton, CheckBox, RadioButtonClickClick, ClickNoneNoneNoneNoneListBox, CheckedListBox, ComboBoxClickClick, DoubleClickNoneNoneNoneNoneTextBox, DomainUpDown, NumericUpDownClickClick, DoubleClickNoneNoneNoneNone*TreeView, *ListView ClickClick, DoubleClickClickClick, DoubleClickNoneNoneProgressBar TrackBar ClickClick, ClickClickClick, ClickClickClick, ClickForm, DataGrid, Label, LinkLabel, Panel,GroupBox, PictureBox, Splitter, DoubleClick, StatusBar,ToolBar, TabPage, **TabControlClickClick, DoubleClickClickClick, DoubleClickClickClick, DoubleClick* 鼠标指针必须在子对象上方 (TreeNode 或 ListViewItem)** TabControl 必须在其 TabPages 页集合中至少有一个 TabPage。最后,不管怎样,只要你愿意,总是可以改写Control.WndProc 来处理任何WM_XXX 消息,比如:你可以定制WM_NCLBUTTONDOWN 消息处理代码: protectedoverridevoidWndProc(refMessagem) { //值来自winuser.h constintWM_NCLBUTTONDOWN=0x00A1; if(m.Msg==WM_NCLBUTTONDOWN){ //dosomething } base.WndProc(refm);//这一步不能忘! }我写了一个例子程序MouseTrap,如图一所示,图一 MouseEventTrap该程序示范了如何进行鼠标事件的处理。如果你借WndProc处理消息,由于必须用IntPtrs获取消息参数,所以你或多或少要用C编程,但因为你已经谙熟C++,所以此时你不会感觉吃力,而是轻车熟路。【责任编辑:彭凡 TEL:(010)】
最新教程周点击榜
微信扫一扫C#让程序多次最小化托盘后,屏幕右下角会出现多个图标,鼠标移动过去就消失了,怎么让他自动刷新就一个程序的图标?
C#让程序多次最小化托盘后,屏幕右下角会出现多个图标,鼠标移动过去就消失了,怎么让他自动刷新就一个程序的图标?
就算退出程序还是有一个假的图标在那
退出的时候,那个图标visable=false
你是在每个窗体都写了一个托盘吧,这样的话你每次关闭一个窗体的时候就应该将托盘的属性visable=false
&private void MainForm_FormClosing(object sender, FormClosingEventArgs e)&&&&&&& {&&&&&&&&&&& if (ExitForm.exitFormOpen == false)&&&&&&&&&&& {&&&&&&&&&&&&&&& e.Cancel =&&&&&&&&&&&&&&& ExitForm exit = new ExitForm(this);&&&&&&&&&&&&&&& exit.ShowDialog();&&&&&&&&&&& }&&&&&&&&&&& else &&&&&&&&&&& {&&&&&&&&&&&&&&& this.notifyIcon1.Visible =&&&& //在退出前面加上这个就不会出现上面情况了&&&&&&&&&&&&&&& Application.Exit();&&&&&&&&&&& }&&&&&&& }
略懂社热议
等待您来回答
编程领域专家
&SOGOU - 京ICP证050897号热门搜索:
当前位置: &&
&& 你抓不到我中文版
《你抓不到我(Catch Me)》是一款一个多人潜入游戏,玩家可以是一个魔术师,也可以是一名盗贼,需要潜入各种迷宫之中,凭借技巧、装备、道具、潜行技能和地图要素躲开守卫的视线,找到迷宫中深藏的宝箱,并用这些财富提升自己属性或是购买装备道具,你需要精心策划,同时也要注意讨厌的妨碍者。
多人潜入:
玩家需要在自己的迷宫中放置守卫来放置钱财被盗窃。同时要潜入其他玩家的迷宫来获取钱财。
策略丰富:
变化多端的魔术道具,花样百出的马戏团守卫。 策略思考的过程,就是合理分配道具,精心安排守卫位置的过程。
录像功能:
由于是异步多人玩法。所以有一个录像系统让你观看他人潜入你迷宫的过程,你可以根据这个录像来不断调整优化你的防守策略。
精准操作:
支持鼠标与键盘两种操作模式,手柄无法做到精准操作,暂不支持。
系列游戏共1款
月黑风高夜,正是杀人时,月下、无情、冷酷、一击必杀,这就是潜行暗杀者。玩家可以在暗杀类游戏中扮演各种潜行暗杀者,随心所欲地去暗杀你的目标,这里没有法律的无情,有
推荐硬件配置
[操作系统]
Windows XP / Windows Vista / Windows 7 / Windows 8 / 8.1
[运行环境]
DirectX 9.0 and 10.0
芯片:集成/独立显卡 显存:256M
下载:0 B,安装:0 B
必备运行库
说明:必备运行库即是你抓不到我游戏运行所必须要安装的程序,如果没有这些程序,游戏可能无法正常运行。,快速智能修复各种常见游戏错误。
该游戏暂无下载地址,小编们正在玩命准备中,请耐心等待...
一、下载游戏与工具时请务必使用迅雷7,在下载前建议用户先查看配置要求、游戏说明和网友评论等信息,下载后请按提示安装。
二、游戏在安装运行的过程中若出现缺少dll、内存不能读、配置不正确等,请下载对应的游戏插件。()
下载的资源有可能会被杀毒软件提醒,部分报毒与补丁工具有关。若您有顾虑,请谨慎下载。
快吧游戏网所有资源均由网友提供, 所有游戏版权问题均与快吧游戏网无关,所有游戏资料均收集于互联网,若有侵权之处请及时联系我们以便尽快处理。
时间:09:00-18:00(节假日除外)
让美国再次伟大:川普总统英文版
伊多:政权v2.20.1英文版
商人传说v1.48中文版
商人传说v1.47中文版
最高统治者:特朗普崛起英文版
群星DLC 整合版中文版
支持单张5M以下的gif/jpg/pngl图片
在线视频地址
目前已支持优酷、土豆的视频播放页链接
扫描二维码

我要回帖

更多关于 躲避球 的文章

 

随机推荐