C#中简单的键盘和鼠标事件处理完整教程

本文就来探讨一下在C#中和这二个主体相关的事件的处理过程。
一.本文介绍的程
【菜科解读】
本文就来探讨一下在C#中和这二个主体相关的事件的处理过程。
一.本文介绍的程序设计和运行的软件环境: (1).Windows xp (2)..net framework 2.0 二.C#中处理鼠标相关的事件: 鼠标相关的事件大致有六种,分别是 : "MouseHover"、"MouseLeave"、"MouseEnter"、"MouseMove"、"MouseDown"和"MouseUp"。
(1).如何在C#程序中定义这些事件: 在C#中是通过不同的Delegate来描述上述事件,其中描述"MouseHover"、"MouseLeave"、"MouseEnter"事件的Delegate是"EventHandler",而描述后面的三个事件的Delegate是"MouseEventHandler"来描述。
这二个Delegate分别被封装在不同的命名空间,其中"EventHandler"被封装在"System"命名空间;"MouseEventHandler"被封装在"Syetem.Windows.Froms"命名空间中的。
在为"MouseHover"、"MouseLeave"、"MouseEnter"事件通过数据的类是"EventArgs",他也被封装在"System"命名空间中;而为后面的三个事件提供数据的类是"MouseEventArgs",他却被封装在"Syetem.Windows.Froms"命名空间。
以上这些就决定了在C#中定义这些事件和响应这些事件有着不同的处理办法。
下面就来介绍这些不同点。
对于上述的前三个事件,是用以下语法来定义的: "组件名称"."事件名称"+= new System.EventHandler("事件名称"); 下面是程序中具体实现代码: button1.MouseLeave += new Syetem.EvenHandler(button1_MLeave); 在完成了事件的定义以后,就要在程序中加入响应此事件的代码,否则程序编译的时候会报错。
下面是响应上面事件的基本结构。
private void button1_MLeave ( object sender , System.EventArgs e ) { 此处加入响应此事件的代码 } 定义"MouseMove"、"MouseDown"和"MouseUp"事件的语法和前面介绍的三个事件大致相同,具体如下: "组件名称"."事件名称"+= new System.Windows.Forms. MouseEventHandler("事件名称"); 下面是程序中具体实现代码: button1.MouseMove += new System.Windows.Forms.MouseEventHandler(button1_MMove); 下面是响应上面事件的基本结构: private void button1_MMove ( object sender , System.Windows.Forms. MouseEventArgs e ) { 此处加入响应此事件的代码 } 注释:在上述程序中的"button1"是定义的一个按钮组件。
2).鼠标相关事件中的典型问题处理办法: 在掌握了C#中定义和鼠标相关的事件,我们就来探讨一下和鼠标相关事件的典型问题。
其一是读取鼠标的当前位置;其二是判定到底是那个鼠标按键按动。
判定鼠标的位置可以通过事件"MouseMove"来处理,在"MouseEventArgs"类中提供了二个属性"X"和"Y",来判定当前鼠标纵坐标和横坐标。
而判定鼠标按键的按动情况,可以通过事件"MouseDown"来处理,并且在"MouseEventArgs"类中也提供了一个属性"Button"来判定鼠标按键情况。
根据这些知识,可以得到用C#编写的读取鼠标当前位置和判定鼠标按键情况的程序代码。
下面就是此代码(mouse.cs)和此代码编译后运行界面: 图01:用C#读取鼠标位置和鼠标按键的程序运行界面 mouse.cs的源程序代码如下: using System ; using System.Drawing ; using System.Collections ; using System.ComponentModel ; using System.Windows.Forms ; using System.Data ; public class Form1 : Form { private System.ComponentModel.Container components = null ; public Form1 ( ) { file://初始化窗体中的各个组件 InitializeComponent ( ) ; } file://清除程序中使用过的资源 protected override void Dispose ( bool disposing ) { if ( disposing ) { if (components != null) { components.Dispose ( ) ; } } base.Dispose ( disposing ) ; } private void InitializeComponent ( ) { this.AutoScaleBaseSize = new System.Drawing.Size ( 6 , 14) ; this.ClientSize = new System.Drawing.Size ( 292 , 273 ) ; this.Name = "Form1" ; this.Text = "C#处理鼠标按动事件!" ; file://为鼠标按动定义一个事件处理过程"Form1_MouseDown" this.MouseDown += new MouseEventHandler ( Form1_MouseDown ) ; file://为鼠标移动定义一个事件处理过程"Form1_MouseMove" this.MouseMove += new MouseEventHandler ( Form1_OnMouseMove ) ; } static void Main ( ) { Application.Run ( new Form1 ( ) ) ; } private void Form1_OnMouseMove ( object sender , MouseEventArgs e ) { this.Text = "当前鼠标的位置为:( " + e.X + " , " + e.Y + ")" ; } private void Form1_MouseDown ( object sender , MouseEventArgs e ) { file://响应鼠标的不同按键 if ( e.Button == MouseButtons.Left ) { MessageBox.Show ( "按动鼠标左键!" ) ; } if ( e.Button == MouseButtons.Middle ) { MessageBox.Show ( "按动鼠标中键!") ; } if ( e.Button == MouseButtons.Right ) { MessageBox.Show ( "按动鼠标右键!") ; } } } 三.C#中处理和键盘相关的事件: 在C#中和键盘相关的事件相对比较少,大致就三种:"KeyDown"、"KeyUp"和"KeyPress"。
(1).如何在C#程序中定义这些事件: C#中描述"KeyDown"、"KeyUp"的事件的Delegate是"KeyEventHandler"。
而描述"KeyPress"所用的Delegate是"KeyPressEventHandler"。
这二个Delegate都被封装在命名空间"Syetem.Windows.Froms"中。
为"KeyDown"、"KeyUp"的事件提供数据的类是"KeyEventArgs"。
而为"KeyPress"事件提供数据的类是"KeyPressEventArgs"。
同样这二者也被封装在命名空间"Syetem.Windows.Froms"中。
在C#程序定义"KeyDown"、"KeyUp"事件的语法如下: "组件名称"."事件名称"+= new Syetem.Windows.Froms. KeyEventHandler("事件名称"); 下面是程序中具体实现代码: button1. KeyUp += new Syetem.Windows.Froms. KeyEventHandler(button1_KUp); 下面是响应上面事件的基本结构。
private void button1_KUp ( object sender , Syetem.Windows.Froms. KeyEventArgs e ) { 此处加入响应此事件的代码 } 在C#程序定义"KeyPress"事件的语法如下: "组件名称"."事件名称"+= new Syetem.Windows.Froms. KeyPressEventHandler("事件名称"); 下面是程序中具体实现代码: button1. KeyPress += new Syetem.Windows.Froms. KeyPressEventArgs(button1_KPress); 在完成了事件的定义以后,就要在程序中加入响应此事件的代码,否则程序编译的时候会报错。
下面是响应上面事件的基本结构。
private void button1_KPress ( object sender , Syetem.Windows.Froms. KeyPressEventArgs e ) { 此处加入响应此事件的代码 } 注释:程序中出现的"button1"是定义的一个按钮组件。
( 2).和键盘相关事件中的典型问题处理办法: 和键盘相关的典型问题无非就是判定到底是哪个按键被按动。
通过上面的三个事件都可以完成。
并且在"KeyEventArgs"类中通过了一个属性"KeyCode",可以用他来读取当前按键。
所以就在"KeyUp"或者"KeyDown"事件中处理这个问题。
根据上面这些知识,可以得到用C#编写读取读取按键的程序代码,下面就是此代码(key.cs)和此代码运行后的界面: 图02:用C#读取键盘按键的程序运行界面 key.cs的代码如下: using System ; using System.Drawing ; using System.Collections ; using System.ComponentModel ; using System.Windows.Forms ; using System.Data ; public class Form1 : Form { private System.ComponentModel.Container components = null ; public Form1 ( ) { file://初始化窗体中的各个组件 InitializeComponent ( ) ; } protected override void Dispose ( bool disposing ) { file://清除程序中使用过的资源 if ( disposing ) { if ( components != null ) { components.Dispose ( ) ; } } base.Dispose ( disposing ) ; } private void InitializeComponent ( ) { this.AutoScaleBaseSize = new System.Drawing.Size ( 6 , 14 ) ; this.ClientSize = new System.Drawing.Size ( 292 , 273 ) ; this.Name = "Form1" ; this.Text = "C#处理键盘事件!" ; file://为按键的按动定义一个事件处理过程"Form1_KeyUp" this.KeyUp += new KeyEventHandler ( this.Form1_KeyUp ) ; } static void Main ( ) { Application.Run ( new Form1 ( ) ) ; } file://显示你所按动的按键名称 private void Form1_KeyUp ( object sender , KeyEventArgs e ) { MessageBox.Show ( e.KeyCode.ToString ( ) , "您所按动的健为:" ) ; } } 四.总结: 本文介绍了在C#中如何定义和鼠标和键盘相关的事件和在这些事件中一些典型问题的处理办法。
虽然这些知识最为基本,但也最为重要,因为在程序设计中,这些问题和我们打交道的机会最多。
当然和鼠标和键盘相关的事件和问题还有许多,可以参照根据上面. 中,简单,的,键盘,和,鼠标,事件,处理,完整,在,
朔州线上缴纳社保超简单,按这几步轻松完成缴费(4月22日)
朔州线上缴纳社保超简单,按这几步轻松完成缴费,如何交社保网上缴费支付宝当下,社保线上付费的途径主要有以下若干种。
线上缴费方法如下:(1)微信缴费登录微信账号,点击右下方的“我”选项;点击“支付”,找到“生活缴费”点击进入;点击“社保医保”,根据系统提示完成缴费。
(2)支付宝缴费打开支付宝,选择“城市服务”;选择社保所在的城市,点击“自然人社保征收”;点击“城乡居民医疗”,进行社保申报并完成缴费。
(3)劳动单位申报平台缴费(适用于单位员工)登录劳动单位申报平台,按提示输入密码;选择“缴费申报管理”,再选择“缴费工资申报”,输入职工上年度月均工资并保存;提交缴费工资申报内容,报给社保中心进行审核;审核通过后,选择“提交信息管理”,再选择“提交结算”;点击“申报”按钮,完成申报工作。
以上操作方式可能因地区和平台而异,具体流程请参考当地社保部门或相关平台的指南。
另外,个人在缴纳社保时,只能缴纳养老金和医疗保险这两部分。
如需了解更多关于社保缴费的信息,请咨询当地社保部门或专业律师。
此外,根据《中华人民共和国社会保险法》的相关法规,用人单位和个人都有义务依法缴纳社会保险费。
对于未按时足额缴纳社会保险费的用人单位,社会保险费征收机构有权责令其限期缴纳或者补足,并加收滞纳金;逾期仍不缴纳的,则可能面临罚钱的处罚。
因此,请务必按时足额缴纳社会保险费,以保护自己的权益。
社保网上缴费的注意事项1、如果遇到问题,可以及时联系当地社保局或相关机构进行咨询和处理。
2、在选择缴费类型和基数时,要根据个人或单位的实际情况进行选择。
3、在支付过程中,要确认支付金额和支付方式是否正确。
4、在进行社保网上缴费时,需要注意以下几点:5、确保个人信息准确无误,包括身份证号码、姓名、手机号码等。
2025年来宾社保缴纳比例是怎么样的?
这一法规的顺利实施,离不开合理的社保缴费比例和灵活的缴费方式,它们不仅关系到每个个体的经济承受能力,还深刻影响着其未来可享有的社会保险水平。
在来宾地区,这一法规同样发挥着重要作用,为当地居民提供了坚实的保险权益。
来宾的社保缴费情况,依据2025年最新的缴费标准,我们可以详细地进行如下说明。
这些标准是根据新社通app-社保缴费查询工具提供的数据整理得出的:缴费比例(2025年)养老保险公司缴纳比例:16%个人缴纳比例:8%医疗保险公司缴纳比例:6.5%(注意:此比例可能因法规调整而有所变化,具体以当地法规为准)个人缴纳比例:2%失业保险公司缴纳比例:0.5%个人缴纳比例:0.5%生育保险公司缴纳比例:0.7%个人无需缴纳,由单位全额承担工伤保险公司缴纳比例:根据行业风险等级确定,由用人单位全额承担个人无需缴纳缴费基数与缴费金额社保的缴费基数是根据个人的实际工资收入来确定的,但通常会有一个上下限。
在来宾,这个上下限是根据当地的社会平均工资来设定的。
假设某员工的月工资为X元(且X在缴费基数上下限之间),那么他的社保缴费金额将按照上述比例进行计算。
以养老保险为例,公司需为该员工缴纳X*16%的养老保险费,而员工个人则需缴纳X*8%的养老保险费。
(注:本文数据仅供参考,具体以当地缴费标准为准)来宾养老保险是可以分别居民基本养老保险和职工基本养老保险,两种养老保险的缴费法规是不一样的。
【1】职工基本养老保险是由单位和职工共同缴费的,其中单位缴费比例为16%,职工缴费比例为8%,通常情况下是以职工上一年度的月平均工资来作为养老保险的缴费基数。
【2】居民基本养老保险是有多个档次的,不同档次的缴费金额是不一样的,没有具体的缴费比例法规。
一般城乡居民养老保险可以分为十三个缴费档次,分别是100元、300元、500元、600元、800元、1000元、1500元、2000元、2500元、3000元、4000元、5000元、6000元。
用户在缴费的时候可以直接选择要缴费的档次金额进行缴费即可。
养老保险在缴费的时候是遵循的多缴多得、长缴多得的原则,缴费金额越多、缴费时间越长在退休之后领取到的养老金就会越高。
对于职工养老保险来说,缴费比例是固定的,只有缴费基数提升,缴费金额才会增加。
居民养老保险则是可以在法规的范围内确定缴费基恩,有足够经济条件的话可以按照最高档次来进行缴费。
以上就是社保缴费的全部内容,社保问题就上新社通!欢迎关注/下载新社通APP解锁更多社保专业资讯及社保实用小工具!