C#,求一个程序键盘方向按键控制对应button按下,并弹出相应的Messagebox。

问题描述

我要做一个小车的上位机,同过键盘代替鼠标点击窗体内的button。可是刚入门不懂啊,要定义什么事件什么的。求给个示范

解决方案

解决方案二:
1.窗体KeyPreview=true2.窗体注册KeyUp或者KeyDown事件3.把你要实现的功能写里边儿
解决方案三:
据说alt+x系统会当作控件Text属性中包涵&x的快捷键
解决方案四:
还要重载ProcessDialogKey事件处理方法
解决方案五:
不过既然重载了ProcessDialogKey那么窗体KeyPreview=true、.窗体注册KeyUp或者KeyDown事件就都不需要了通过按钮名.PerformClick()就可以调用已定义好的按钮的Click处理程序
解决方案六:
引用1楼Imcx_的回复:

1.窗体KeyPreview=true2.窗体注册KeyUp或者KeyDown事件3.把你要实现的功能写里边儿

那个键盘控制我搞定了,可是我的窗体里面有combox,我设置为下拉模式,我按方向键盘的时候combox也会调,我在属性设置里面找不到能够不被键盘控制的设置啊,求
解决方案七:
引用3楼xuzuning的回复:

还要重载ProcessDialogKey事件处理方法

不是很懂。。。。
解决方案八:
publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}protectedoverrideboolProcessDialogKey(KeyskeyData){if(keyData==Keys.Up||keyData==Keys.Down||keyData==Keys.Left||keyData==Keys.Right){if(keyData==Keys.Up)button1.PerformClick();if(keyData==Keys.Left)button2.PerformClick();if(keyData==Keys.Right)button3.PerformClick();if(keyData==Keys.Down)button4.PerformClick();returnfalse;}elsereturnbase.ProcessDialogKey(keyData);}privatevoidForm1_KeyUp(objectsender,KeyEventArgse){label1.Text=e.KeyCode.ToString()+":"+e.KeyValue.ToString();if(e.KeyValue==38)button1.PerformClick();if(e.KeyValue==37)button2.PerformClick();if(e.KeyValue==39)button3.PerformClick();if(e.KeyValue==40)button4.PerformClick();}privatevoidbutton1_Click(objectsender,EventArgse){MessageBox.Show("上");}privatevoidbutton4_Click(objectsender,EventArgse){MessageBox.Show("下");}privatevoidbutton2_Click(objectsender,EventArgse){MessageBox.Show("左");}privatevoidbutton3_Click(objectsender,EventArgse){MessageBox.Show("右");}}

解决方案九:
privatevoidForm1_KeyUp(objectsender,KeyEventArgse){label1.Text=e.KeyCode.ToString()+":"+e.KeyValue.ToString();if(e.KeyValue==38)button1.PerformClick();if(e.KeyValue==37)button2.PerformClick();if(e.KeyValue==39)button3.PerformClick();if(e.KeyValue==40)button4.PerformClick();}是无效代码,请删去
解决方案十:
引用7楼xuzuning的回复:

publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}protectedoverrideboolProcessDialogKey(KeyskeyData){if(keyData==Keys.Up||keyData==Keys.Down||keyData==Keys.Left||keyData==Keys.Right){if(keyData==Keys.Up)button1.PerformClick();if(keyData==Keys.Left)button2.PerformClick();if(keyData==Keys.Right)button3.PerformClick();if(keyData==Keys.Down)button4.PerformClick();returnfalse;}elsereturnbase.ProcessDialogKey(keyData);}privatevoidForm1_KeyUp(objectsender,KeyEventArgse){label1.Text=e.KeyCode.ToString()+":"+e.KeyValue.ToString();if(e.KeyValue==38)button1.PerformClick();if(e.KeyValue==37)button2.PerformClick();if(e.KeyValue==39)button3.PerformClick();if(e.KeyValue==40)button4.PerformClick();}privatevoidbutton1_Click(objectsender,EventArgse){MessageBox.Show("上");}privatevoidbutton4_Click(objectsender,EventArgse){MessageBox.Show("下");}privatevoidbutton2_Click(objectsender,EventArgse){MessageBox.Show("左");}privatevoidbutton3_Click(objectsender,EventArgse){MessageBox.Show("右");}}

好感动

时间: 2024-10-25 13:13:07

C#,求一个程序键盘方向按键控制对应button按下,并弹出相应的Messagebox。的相关文章

皑皑-求一个51单片机控制舵机(非常简单易懂的程序,通过按键控制舵机左右转)

问题描述 求一个51单片机控制舵机(非常简单易懂的程序,通过按键控制舵机左右转) 求一个51单片机控制舵机(非常简单易懂的程序,通过按键控制舵机左右转) 解决方案 http://wenku.baidu.com/link?url=YfL6pceFTo87nv2SycY69Su1aMllPb9Ry-8sByth9_ht4AIkwOgvRTiYfhYzcruYeK8-dgqX0VucicYTrWbYnzMjYYt7yFRlgh1qp2glkJ7 解决方案二: 舵机控制舵机控制舵机控制

求一个程序算法,关于找出符合条件的操作符排列?

问题描述 求一个程序算法,关于找出符合条件的操作符排列? 给一个初始操作数a,然后对这个操作数执行n次加减乘余的计算操作[每次操作a自增1,而且不考虑运算符优先级,谁在前面先算谁],最后会得到一个结果数x,问如何求出这些操作符?? 重要:程序不能使用递归,最好只用一个主函数!! 比如,给你一个初始数3,执行7次加减乘余操作,最后得到结果147,那么有一种操作符序列满足条件:* + + - * + + 既:3*4+5+6-7*8+9+10=147 解决方案 亲测合格,请验证: #include #

firefox-为什么CSDN登录页面在Firefox下会弹出“您请求了一个包含某些不安全信息的安全文档”

问题描述 为什么CSDN登录页面在Firefox下会弹出"您请求了一个包含某些不安全信息的安全文档" 最近重装的系统,用Firefox登录csdn,Firefox浏览器弹出了一个窗口提示"您请求了一个包含某些不安全信息的安全文档". 大家遇到过吗?这是因为什么呢? Firefox版本: 弹框截图: PS. 我点击确定之后弹框就再也没了. 解决方案 http与https协议混用了就会弹出这样的警告吧.

mfc-MFC 组合框下拉弹出树形控件该怎么实现,自己菜鸟一个

问题描述 MFC 组合框下拉弹出树形控件该怎么实现,自己菜鸟一个 组合框控件和树形控件都能单独实现,就是将两者结合起来不知道怎么弄 解决方案 MFC组合控件的一个小问题 解决方案二: 可以捕获下拉点击事件,然后把树形控件移动过去,显示出来,这样实现简单点 解决方案三: 把树形框放到另外一个无边框窗口里,单击组合框时创建窗口移动过去

c#窗体-C#winform一个字符串是窗体名称 该怎么用这个字符串去弹出窗体

问题描述 C#winform一个字符串是窗体名称 该怎么用这个字符串去弹出窗体 string showFrm = ((NavBarItem)sender).Tag.ToString(); showFrm里面接到了一个窗体名称 但应该如何用这个字符串去打开这个名称的窗体. 解决方案 如果要通过字符串去打开窗体 是否可以在Tag不存窗体的名称而存该窗体的程序集名称, 这样子可以通过反射去获取到. 获取直接将该窗体存到Tag里面? 不然就在加载的时候用一个字典通过名称做Key然后去找到该窗体

ASP.net页面局部刷新的情况下,后台代码在满足特定条件下如何弹出一个新的asp.net窗口

问题描述 ASP.net页面局部刷新的情况下,后台代码如何弹出一个新的asp.net窗口,Response.Write("<script>window.open('alarmdialog.aspx','newwindow','height=850,width=1300,top=150,left=500,toolbar=no,menubar=no,scrollbars=no,resizable=no,location=no,status=no')</script>"

如何能够前台控制PopUpWin控件 赋值和弹出??

问题描述 如题,就是右下角弹出窗口控件(http://www.codeproject.com/KB/custom-controls/asppopup.aspx),如何能在前台用js函数对其赋值message,并控制多次弹出?? 解决方案 解决方案二:下班前顶一下解决方案三:曾经想过.但是用ajaxpro做还是没做出...一同求教啊.解决方案四:再顶顶,高人们现身啊!

(北京)求一个asp.net方向实习的岗位?有需要的多关照下嘛。

问题描述 说下实习能力吧.asp.net控件多会使用,ado.net比较熟悉.一般简单点的任务能够完成,自己也做过小的作品,想找个实实在在的地方实习.工资倒了没什么要求,吃住能解决更好.QQ:375772376.您可以先看看我做的东西,qq一般都在线. 解决方案 解决方案二:up解决方案三:帮个忙啦.解决方案四:人好少哦,自己顶下..解决方案五:UP

急急急,求一个程序输出~

问题描述 classZb{publicstaticvoidmain(Stringargs[]){intx[]={1,2,3},y=1;ints;for(inti=0;i<=2;i++){s=0;sub1(x,y);s=s+x[i]+y;System.out.print("s="+s);}}staticvoidsub1(inta[],intb){for(inti=0;i<a.length;i++)a[i]++;b++;}}我觉得输出应该是s=6,s=7,但是正确输出是s=3,