范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

C程序设计鼠标和键盘

  一、获取鼠标的窗体/屏幕坐标
  protected override void OnMouseMove(MouseEventArgs e) {     Point clientMouse = e.Location; //相对窗体坐标     Point screenMouse = PointToScreen(clientMouse); //相对屏幕坐标     this.Text = string.Format("鼠标窗体坐标:({0},{1}) 鼠标屏幕坐标:({2},{3})",     clientMouse.X, clientMouse.Y, screenMouse.X, screenMouse.Y); }
  该实例重写了鼠标移动事件函数OnMouseMove,利用参数e获取窗体坐标,利用PointToScreen方法获取屏幕坐标。二、鼠标长时间按下事件
  鼠标持续按下2秒,弹窗public partial class Form1 : Form {     Timer timer = new Timer(); //创建实例     int timeout = 0; //超时时间     MouseEventArgs LongDown; //鼠标长时间按下事件参数     public Form1()//窗体构造函数     {         InitializeComponent();         timer.Interval = 1000; //定时器间隔,单位毫秒         timer.Tick += new EventHandler(timer_Tick); //注册timer_Tick事件     }     void timer_Tick(object sender, EventArgs e)//每个间隔执行一次     {         if (++timeout == 2) OnMouseLongDown(this.LongDown);          //鼠标按下2秒,调用长时间按下事件     }     protected override void OnMouseDown(MouseEventArgs e)     {         this.LongDown = e; //鼠标按下事件参数         this.Cursor = Cursors.Hand; //鼠标按下为手型         timeout = 0;  //超时时间清0         timer.Start(); //计时器启动     }     protected override void OnMouseUp(MouseEventArgs e)     {         this.Cursor = Cursors.Arrow;//鼠标松开为箭头         timer.Stop(); //计时器停止     }     protected virtual void OnMouseLongDown(MouseEventArgs e)     {         MessageBox.Show("鼠标被长时间按下!");     } }
  鼠标按下,启动定时器;
  鼠标抬起,停止定时器;
  定时器计时后,每秒timeout加1,达到设定时间后触发函数OnMouseLongDown,弹窗。三、根据区域设置鼠标类型
  四个区域,对应四种鼠标图标protected override void OnMouseMove(MouseEventArgs e) {       if (e.X < ClientSize.Width / 2)           if (e.Y < ClientSize.Height / 2)               this.Cursor = Cursors.Hand; //左上,鼠标为手形图标           else               this.Cursor = Cursors.Help; //左下,鼠标为帮助图标       else           if (e.Y < ClientSize.Height / 2)               this.Cursor = Cursors.WaitCursor; //右上,鼠标为等待图标           else               this.Cursor = Cursors.Cross; //右下,鼠标为十字型图标 }
  该实例通过修改窗体的Cursor对象实现鼠标样式的改变。四、创建鼠标图标
  protected override void OnLoad(EventArgs e) {     Bitmap icon = new Bitmap(100,100);//鼠标图标的大小     Graphics G = Graphics.FromImage(icon); //创建新的绘图     G.SmoothingMode = SmoothingMode.AntiAlias; //消除锯齿     G.Clear(Color.Transparent); //图标背景设为透明     G.FillPie(new SolidBrush(Color.FromArgb(255, Color.Red)) //绘制扇形作为鼠标指针     , new Rectangle(0, 0, icon.Width, icon.Height), 30f, 30f);     G.Dispose(); //释放绘图表面     this.Cursor = new Cursor(icon.GetHicon()); //设置新的鼠标对象     icon.Dispose(); }
  该实例利用绘制图标自定义鼠标的图标:
  1、创建了一个100x100位图对象;
  2、在位图中绘制一个扇形形状作为鼠标指针;
  3、通过GetHicon方法获取图标句柄,并创建Cursor对象。五、限制鼠标活动范围
  抬起,活动范围全屏;按下,活动范围窗体protected override void OnMouseDown(MouseEventArgs e)//鼠标按下 {     this.Text = "鼠标按下,活动范围限制为窗体";     Cursor.Clip = new Rectangle(this.Location, this.Size); } protected override void OnMouseUp(MouseEventArgs e)//鼠标抬起 {     this.Text = "鼠标抬起,活动范围无限制";     Rectangle clip = new Rectangle();     foreach (var item in Screen.AllScreens) //遍历所有屏幕         clip = Rectangle.Union(clip, item.Bounds);//包含所有屏幕的最小矩形     Cursor.Clip = clip; }
  该实例通过调用Cursor类的Clip属性(Rectangle类型)来设置鼠标的活动区域。六、隐藏和显示鼠标指针
  按下:隐藏;抬起:显示protected override void OnMouseDown(MouseEventArgs e) {     this.Text = "鼠标按下:隐藏";     Cursor.Hide(); //隐藏鼠标 } protected override void OnMouseUp(MouseEventArgs e) {     this.Text = "鼠标抬起:显示";     Cursor.Show(); //显示鼠标 }
  该实例通过调用Cursor类的Hide和Show方法来实现鼠标的隐藏与显示。七、利用鼠标进行书写
  bool isMouseDown = false; //声明Bool变量:鼠标是否按下 Point pointMouse = new Point();//鼠标上一时刻的坐标 protected override void OnMouseDown(MouseEventArgs e) {     pointMouse = e.Location; //鼠标上一时刻坐标     isMouseDown = true; //鼠标已经按下 } protected override void OnMouseMove(MouseEventArgs e) {     if (isMouseDown)     {         using (Graphics G = this.CreateGraphics()) //获取窗体绘制表面         {             G.SmoothingMode = SmoothingMode.AntiAlias; //消除锯齿             using (Pen pen = new Pen(Color.Red, 3f)) //创建宽度为3像素的黑色画笔             {                 G.DrawLine(pen, pointMouse, e.Location); //绘制连接两个坐标的线段                 pointMouse = e.Location; //重新设置鼠标坐标             }         }     } } protected override void OnMouseUp(MouseEventArgs e) {     isMouseDown = false; //鼠标未按下 } private void button1_Click(object sender, EventArgs e) {     this.Invalidate();//清屏 }
  该实例通过利用DrawLine方法绘制连续的线段实现书写。
  鼠标按下,把实时坐标赋值给pointMouse;
  鼠标按下并移动,绘制当前点与pointMouse之间的线段;
  鼠标抬起,停止绘制。八、按下组合键实现窗体全屏
  Ctrl+Enter组合键实现全屏缩放protected override void OnKeyDown(KeyEventArgs e) {     if (e.KeyData == (Keys.Control | Keys.Enter)) //判断键盘按键类型     {         if (this.WindowState == FormWindowState.Maximized) //判断窗体是否最大化         {             this.WindowState = FormWindowState.Normal; //窗体还原         }         else if (this.WindowState == FormWindowState.Normal)//判断窗体是否默认大小         {             this.WindowState = FormWindowState.Maximized; //窗体最大化         }     } }
  该实例通过函数OnKeyDown的KeyEventArgs参数对象的KeyData属性来获取键盘按下的键。通过判断属性值是否为Ctrl+Enter组合键的值来决定是否将窗体最大化。九、屏蔽Alt+F4组合键
  protected override void OnKeyDown(KeyEventArgs e) {     if (e.KeyData == (Keys.Alt | Keys.F4))     {         MessageBox.Show("Alt+F4组合键已被屏蔽,无法关闭当前窗体!");         e.Handled = true; //标记为已处理状态     } }
  如果检测到Alt+F4组合键按下,则将参数对象KeyEventArgs的Handled属性设置为true,标记Alt+F4组合键消息已经被处理过。十、使用Shift+方向键调整窗体大小
  "Shift+方向"组合键,调节窗体大小protected override void OnKeyDown(KeyEventArgs e) {     if (e.KeyData == (Keys.Shift | Keys.Left)) this.Width -= 10; //减小宽度     if (e.KeyData == (Keys.Shift | Keys.Right)) this.Width += 10; //增加宽度     if (e.KeyData == (Keys.Shift | Keys.Up)) this.Height -= 10; //减小高度     if (e.KeyData == (Keys.Shift | Keys.Down)) this.Height += 10; //增加高度     this.Text = "使用Shift+方向键调整窗体大小" + string.Format("({0},{1})", this.Width, this.Height); }十一、录制并回放鼠标移动轨迹
  按下Ctrl,记录鼠标轨迹;抬起Ctrl,绘制记录的轨迹Queue mousePoints = new Queue(); //保存鼠标轨迹 bool isCtrlDown = false; //标记Ctrl键是否按下 protected override void OnKeyDown(KeyEventArgs e) {     if (e.KeyData == (Keys.LButton | Keys.ShiftKey | Keys.Control))     {//判断Ctrl键按下         isCtrlDown = true; //标记Ctrl键按下         timer1.Start(); //启动计时器     } } private void timer1_Tick(object sender, EventArgs e) {     if (isCtrlDown) mousePoints.Enqueue(Cursor.Position); //添加轨迹     else if (mousePoints.Count > 0) //鼠标轨迹数大于0     {         Cursor.Position = mousePoints.Dequeue(); //从轨迹中取出一个点设置为鼠标当前值         Graphics g = this.CreateGraphics(); //获取窗体绘图表面                                    Cursor.Draw(g, new Rectangle(PointToClient(Cursor.Position), Cursor.Size)); //绘制鼠标图标         g.Dispose();     }     else timer1.Stop(); //停止录像或回放 } protected override void OnKeyUp(KeyEventArgs e) {     if (e.KeyData == (Keys.LButton | Keys.ShiftKey)) //判断Ctrl键抬起         isCtrlDown = false; //标记Ctrl键抬起 }
  Ctrl键按下,启动计时器,将鼠标的实时位置添加到鼠标轨迹中。
  Ctrl键抬起,将记录的鼠标轨迹逐一出队,调用Cursor的Draw方法来绘制鼠标的动作轨迹,停止计时器。十二、模拟键盘输入
  private void button1_Click(object sender, EventArgs e)//按钮1,输入字符 {     textBox1.Focus(); //获取文本框焦点     SendKeys.Send("1234ABCD - ");     SendKeys.Flush(); //处理所有的Windows消息 } private void button2_Click(object sender, EventArgs e)//按钮2,退格 {     textBox1.Focus();     SendKeys.Send("{BS}");     SendKeys.Flush(); } private void button3_Click(object sender, EventArgs e)//按钮3,输入10个A {     textBox1.Focus();     SendKeys.Send("{A 10}");     SendKeys.Flush(); } private void button4_Click(object sender, EventArgs e)//按钮4,输入Alt+F4键 {     MessageBox.Show("窗口即将关闭!");     SendKeys.Send("%{F4}"); }
  通过SendKeys类的Send方法来实现向当前获取焦点的控件发送键盘按键。
  参考:《C#程序设计经典300例》

对话科思创王丽探索低碳合作推动循环经济需产业链联动11月5日至11月10日,第五届中国国际进口博览会在上海举行。德国化工巨头科思创也在本届进博会上亮相。科思创集团与汽车品牌高合达成新战略协议,科思创的低碳工程塑料等解决方案将应用于苹果13对16。1。1系统测试反馈苹果打破周二发布的惯例,改为周四发布16。1。1这个小版本!那么更新了什么内容可能大家看到一头雾水,那么先说说16。1系统遇到的问题吧1。掉电厉害,肉眼看得见的让人蛋疼的掉电速度,2022年,巴西麻醉师在孕妇剖腹产时对其性侵,或有三名孕妇受害文丨大大怪巨怪编辑丨大大怪巨怪前言近日,巴西一名麻醉师利用职务之便,在孕妇实施剖腹产时对其实施了性侵,根据警方的事后统计,或有三名孕妇曾遭其毒手。这到底是怎么一回事?一医院败类等等全城寻找最美宝妈活动评选开始啦,快来投上您宝贵的一票吧河北青年报联合河北生殖妇产医院共同组织举办2022年度与你不期而孕全城寻找最美宝妈评选活动备孕人群孕妈或者孩子在3周岁以内都可以参加此次活动最美孕妈照片形式也很简单,可以是写给未来央行10月末社会融资规模存量为341。42万亿元,同比增长10。3央视网消息央行网站11月10日消息,初步统计,2022年10月末社会融资规模存量为341。42万亿元,同比增长10。3。其中,对实体经济发放的人民币贷款余额为209。84万亿元,同这些躺平的年轻人,是他们的错,还是社会的错现在躺平的人越来越多,甚至连20岁左右的年轻人都开始混日子,口口声声,这辈子也就这样了,爱咋地咋地!到底是哪个环节出了问题。这么年纪轻轻的,还没开始奋斗,就结束了,都颓废到这种程度我们也是尼安德特人的后代2022年的诺贝尔奖的生理学或医学奖授予了瑞典科学家斯万特帕博,以表彰他对已灭绝人种的基因组和人类进化的发现,他最著名的贡献就是从几万年前的化石中提取,构建了第一个尼安德特人基因组为火狐浏览器安装扩展商店不让安装的功能扩展最近打开火狐扩展商店中的某些扩展页面时,会出现您尝试访问的页面在您的地区不可用的提示,说明这款扩展通过扩展商店无法进行安装。好在天无绝人之路,毕竟很多扩展都有自己的官方页面,甚至有科学家发现首个星际天体,2014年撞击地球,生命源于地外?科学家发现了地球的首个星际访客,当然这是目前已知的情况,也许在人类尚不具备观测能力的时候,早已经有数不清的星际访客造访地球。星际天体这个概念也是最近几年才出现的,2017年10月1别人生娃后VS我生娃后,为什么差距如此之大?宝妈很真实我的身材怎么变得这么臃肿了?这是我听到的宝妈说得最多的一句话,但是我在看电视剧或者杂志的时候发现那些女明星生完孩子之后跟没生没什么区别,没有出现臃肿或者是皮肤变差的现象。但是现实生拥有2亿粉丝的卡戴珊努力经营自己啊品牌,果真越优秀的人越努力在最新的个人账号中,卡戴珊kimkardashian又为自创品牌站台,SKIMS塑身衣,总让人眼前一亮,无论是塑形还是内衣,或是休闲服,不论是简约风还是挑剔且时尚感强的衣服,给人一韩国时隔五年有望重新包揽冠亚军!JDG成了唯一希望游戏马蹄铁原创T1成为版本夺冠大热T1在小组赛结束之后出现了冠军相,近乎无敌的上单Zeus永恩30轻松淘汰了RNG。Faker和Gumayusi正常发挥不给机会,不送击杀的情况下,韩国济州岛旅游圣地牛岛推行资源循环运动图为牛岛工作人员讲解资源循环系统。万佳欣摄中新网首尔10月23日电(刘旭万佳欣)中新网记者近日获悉,韩国济州道为在2030年实现CFI(CarbonFreeIsland,无碳之岛)金钟戏剧红毯造型46岁林心如锁骨抢镜,杨谨华大秀好身材围观完小S出席综艺节目奖项红毯,又可以来看戏剧类红毯啦!还是同样的配方同样的味道,简陋的背景湿漉漉的地板糟糕的造型翻车的主持人一样不少,网友刷屏吐槽整个红毯又尴尬又可笑。不过相比较进针之后,肌肉突然跳动起来所谓跳动穴,是指针刺得气后,在一定手法的运作下,能使肢体跳动或肌肉抽动的穴位。全身究竟有多少跳动穴?虽然没有做过系统的观察和统计,但是手太阴肺经的尺泽孔最手阳明大肠经的合谷手三里曲香砂六君子丸的搭配,您知道吗?脾胃不好的朋友,香砂六君子丸应该是很熟悉的,那它以下三种搭配,您知道吗?赶快收藏转发吧!金匮肾气丸搭配香砂六君子。肾为先天之本,脾是后天之本,脾依靠肾的先天支持,肾依赖脾的后天补养日本女星石原里美最新杂志靓图!雪肤玉貌美得让人窒息前阵子,日本著名女星石原里美生孩子后复出,拍摄了一组美容杂志的靓丽写真,魅力十足。石原里美身穿一袭白色衣裳,她俏脸清丽脱俗,眉清目秀,长发飘逸,肌肤白皙,美得让人窒息!石原里美身穿脚后跟干裂全没了!滑嫩如新,竟然只需这三步秋冬不光是手和脸干燥,脚后跟出现的问题也不少蜕皮裂口干痒迟迟好不了,生活真的很不方便。你是不是也这样?我之前就是好几年的重度脚干脚裂,每天脱袜子的时候就是最折磨的时候,干皮xue丝真正的探险家的手表德国拓天马TUTIMAM2运动腕表拓天马M2SevenSeasSPVD并非每款运动腕表都需要价格昂贵。它只需要具有高度功能性即可完成其预期工作,包括设置为在极端水下深度与佩戴者一起的潜水腕表。德国手表品牌Tutim马斯克卖香水小鹏卖麻将,大厂不务正业有多疯狂来源零态LT(IDLingTaiLT)作者吴狄编辑胡展嘉运营陈佳慧什么?马斯克正在卖马斯克,这是怎么回事?恐怕没有人不知道马斯克这个名字,不过,你知道马斯克在英文里是什么意思吗?为你就是主角盘点HELIUS品牌22年秋冬的高定品味伴随着秋冬季节的正式来临全新系列陆续上线,时尚圈也逐渐再起热潮。本年度,HELIUS品牌的高定品味一如既往,并没有因为疫情或其他原因丢失其独有的风格,并且还开拓了新形象,下面我们一殷桃这造型太油腻了!穿白T牛仔很清新,但满脸油光太拉垮俗话说三分相七分打扮,要想让自身魅力变得更高,单品款式设计和风格的烘托很重要。日常T恤牛仔裤是很多人不可缺少的私服单品,上身休闲舒适,满是对生活的惬意享受。但也要结合整体的风格去展
5年期存款利率比3年期还少,为什么会出现利率倒挂?通常情况下,存款期限越长,对应的存款利率越高,然而最近一段时间很多银行都出现了利率倒挂的现象。所谓利率倒挂就是期限长的存款利率比期限短的存款利率还要低。比目前工行1万元以上起存的三提前算一算,2022年养老金调整,我能长多少今天,偶然从网易新闻刷到河北省2022年调整退休人员基本养老金的文章。按照这个办法和标准,涉及到我本人的有(一)定额调整(二)挂钩调整。我所理解的倾斜调整是针对七十岁以上的老年人及A股,明天可能会大跳水我这几天说得最多的话,就是空方玩老套路,并把和多方博弈的主要阵地转移到创业板指。前段时间空方经过多日跟多方在创业板上激烈博弈,成功把创业板走势打坏,前几天就让创业板失守五日均线,并6月油价一涨一跌,7月油价有望继续下跌,跌幅或超过下调标准油价问题已经让车主们的神经绷在了一个非常紧张的状态,降与不降都是一个很难熬的问题。不过近期这个问题得到了一丝的缓解,因为前段时间国内油价跌了,而更好的消息就是油价可能会持续地下跌。藝文视界交人交友的点滴感悟人的一生在工作生活和社会交往中都会与形形色色的人打交道。有些人会擦肩而过,有些人会终生相交有些人会由浓而淡,有些人会由远而近有些人会心生敬仰,有些人会侧目而视有些人会志同道合,有些群发问候也是一种打扰一个好友,一片天。一个知己,一份缘。感恩这片天,珍惜这份缘。愿你我,吉祥快乐每一天!早安!笑是一种无声的语言,它可以带来美的享受,也能化解素日的愁怨。百事从心起,一笑解千愁。早安!过献给50后60后的打油诗天晓加入大爷大妈的行列后,总想为同龄人写点喜闻乐见朗朗上口,并充满正能量的文字,特将这首打油诗献给各位老年朋友,祝大家开心快乐!健康长寿!精彩人生匆匆过,酸甜苦辣都尝过,退休余生怎喜欢的朋友圈文案这里都有1认真的生活,温柔的去爱慢慢的与这个世界和谐相处在自己的世界里闪闪发光!2千万别以为,淡泊名利就不用去奋斗,在这个时代,仅仅是维持现状,也需要不断努力。3生活并非都是繁花锦绣,所有没有说过再见,也不必苛求再见文夏季风图我心依旧丢失的爱情无可挽救就像花开荼靡想着舍不得又让心无法归零后来也渐渐地清醒遇见过的人只适合思念不适合再见本以为爱情像阳光一样明媚却发现爱如潮水,不可收拾没有人知道爱情适合发朋友圈的治愈文案51别否定自己,你特别好,特别温柔,特别值得被爱。2这个全世界怎么要求你,那是它的事我最偏心你我的糖都给你。3与其可忙的追赶日落不如静待满天繁星。4别为了那些不属于你的观众,去演绎不人民日报金句摘抄1心有所畏,方能言有所戒行有所止。2长风过隘口,奋斗正当时。3慎终如始,则无败事。越处在关键时刻,越要以清醒头脑坚持正确方向,越要站稳脚跟善作善成。4举一纲而万目张,落一子而满盘活退保险大约多久能到账?怎么能全额退?现在不少人在购买保险产品的时候可能都不是十分关注保险的条款内容的,因此匆忙购买了,但是最后发现购买了保险产品后一点都不合适,因此这个时候就只能选择退保了,那么退保险大约多久能到账?A股行情逐渐明朗,股市要变盘了吗?导语A股行情逐渐明朗,股市要变盘了吗?炒股要懂得一句话别在散户,一致看涨时刻追涨,别在散户,一致看空时刻,杀跌大家都知道,今年,美股与大A的正反走势!此前美股猛涨,大A涨,美股跌,风向标变了!仅仅2周,价格下跌了11!铜博士大跌暗示什么?王爷说财经讯作为全球经济的一个风向标,铜价可能有一定的参考价值!要知道,铜被用于许多建筑材料,包括电线和水管,而这也意味着它通常被视为经济活动的代表,因为当经济扩张时,需求往往会升紧急3点提醒欧美股市全线暴涨!明日的大A行情我们应如何应对?首先明确观点明日大盘会形成高开低走的形式。早盘高开之时就是获利了结,落袋为安的最佳时机,待指数回调至上周五跳空高开3320点位置附近时便是再次进攻为主低吸的机会。1。欧美股市的涨跌福利!建筑业中小企业必看福建省住建部门发布关于支持建筑业中小企业发展的通知,具体内容如下!一帮助中小企业纾困各级住房城乡建设主管部门要结合开展建筑业稳产帮促专项行动,主动靠前服务,深入走访中小企业,了解掌重磅利好!千亿资金入市,明天a股怎么走?会大涨吗?周末股市处于休市状态,本该股民投资者们可以好好休息两天,但本周末出现两大重大利好之后,打破了市场的平静,让市场和投资者们沸腾了毕竟这两大重磅利好是有份量的,或许会刺激明天a股大涨。生气让你面目可憎每个人都有七情六欲。在人的七情六欲中,有一种就是怒。梁实秋说一个人发怒的时候,最难看。这是说,当一个人发起怒来的时候,脸红脖子粗,有损形象。人在发怒的时候的确是最难看的。纵然面似莲扎心的实话(81)1,以后的以后,少一点自以为是,多一点自知之明。2,谁也不是谁的救赎,做英雄得靠自己!3,每次呼吸都是上天的恩赐,能活着就是一大乐事。4,别人面试找工作,选的是福利和发展前途,而我领导语录往后余生,看清别人,认清自己你要相信,活着就是拥有最大的可能性。生活总是不断地锤炼我们,一次次给予我们无情的打击与伤害,但又总是在一次次的伤害中教会我们成长,变得强壮。人生在世,不可能每个人都做到功成名就,我生死疲劳最意味深长的10句话少欲无为,身心自在见字第1118期01hr生死疲劳,从贪欲起。少欲无为,身心自在。02hr世间的万物就是这样,小坏小怪遭人厌恨,大坏大怪被人敬仰。03hr世事犹如书籍,一页页被翻过去。人要向前看,少愿每一天多姿多彩岁月无声无息,只待静好。每一天都应该是美好的,每一天都应该值得我们期待,每一天都应该值得我们拥有。愿每一天多姿多彩,清晨用最美的心情,给自己道一声早安,让我们去迎接这崭新的一天。愿