当前位置:首页 > 通信资讯 > 正文

c#自定义按钮(C#自定义方法)

本文实例讲述了C#编程实现自定义热键的方法。分享给大家供大家参考。具体实现方法如下:

?
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Drawing.Imaging;using System.IO;using System.Runtime.InteropServices;using System.Net;using System.Drawing.Drawing2D;namespace App{public partial class Form2 : Form{public Form2(){InitializeComponent();//程序加载加载热键this.Load += delegate{// 热键一:Control +光标左箭头CustomSystemKeyBoard.RegisterHotKey(Handle, 100, 8, Keys.Left);// 热键一:Control +光标右箭头CustomSystemKeyBoard.RegisterHotKey(Handle, 200, 2, Keys.Right);// 热键一:Control +光标上箭头CustomSystemKeyBoard.RegisterHotKey(Handle, 300, 2, Keys.Up);// 热键一:Control +光标下箭头CustomSystemKeyBoard.RegisterHotKey(Handle, 400, 2, Keys.Down);};//在程序退出时取消热键的注册this.FormClosing += delegate{CustomSystemKeyBoard.UnregisterHotKey(Handle, 100);CustomSystemKeyBoard.UnregisterHotKey(Handle, 200);CustomSystemKeyBoard.UnregisterHotKey(Handle, 300);CustomSystemKeyBoard.UnregisterHotKey(Handle, 400);};}protected override void WndProc(ref Message m){//如果m.Msg的值为0x0312那么表示用户按下了热键const int WM_HOTKEY = 0x0312;switch (m.Msg){case WM_HOTKEY:ProcessKey(m);break;}base.WndProc(ref m);}/// <summary>/// 按下热键的操作/// </summary>/// <param name="m"></param>protected void ProcessKey(Message m){//IntPtr用于表示指针或句柄的平台特定类型 string id = m.WParam.ToString();MessageBox.Show(id);switch (id){case "100"://break;case "200":break;case "300":break;case "400":break;}}}public class CustomSystemKeyBoard{/// <summary>/// 声明API函数/// </summary>/// <param name="hWnd">Handle</param>/// <param name="id">热键id</param>/// <param name="fsModifiers">热键类型(KeyModifiers)</param>/// <param name="vk">键盘按键</param>/// <returns></returns>[System.Runtime.InteropServices.DllImport("user32.dll")]public static extern bool RegisterHotKey(IntPtr hWnd,int id,uint fsModifiers,Keys vk);/// <summary>/// 声明API函数/// </summary>/// <param name="hWnd"></param>/// <param name="id"></param>/// <returns></returns>[System.Runtime.InteropServices.DllImport("user32.dll")]public static extern bool UnregisterHotKey(IntPtr hWnd, int id);/// <summary>/// 定义一个KeyModifiers的枚举,以便出现组合键/// </summary>public enum KeyModifiers{None = 0,Alt = 1,Control = 2,Shift = 3,Windows = 8}}}

希望本文所述对大家的C#程序设计有所帮助。

如果您对该产品感兴趣,请填写办理(客服微信:xiaoxiongyidong)

为您推荐:

发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。