社区
C#
帖子详情
C# 20003 上下键
vanbastenliuyingqin
2010-09-16 04:47:18
很是奇怪,我的程序中keydown keypress keyup 就是捕获不到上下键,IsInputKey 、ProcessDialogKey也重写了。还是无济于事。
但是我的测试程序就可以捕获到。没有什么其他的操作。 大家帮我想想这是怎么了呢!!!
万分感谢!!!
...全文
137
16
打赏
收藏
C# 20003 上下键
很是奇怪,我的程序中keydown keypress keyup 就是捕获不到上下键,IsInputKey 、ProcessDialogKey也重写了。还是无济于事。 但是我的测试程序就可以捕获到。没有什么其他的操作。 大家帮我想想这是怎么了呢!!! 万分感谢!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wuyq11
2010-09-16
打赏
举报
回复
KeyPreview = true
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
switch (e.KeyCode)
{
case Keys.Up: { break; }
case Keys.Down: { break; }
}
}
vanbastenliuyingqin
2010-09-16
打赏
举报
回复
我再检查一下吧!! 谢谢您
HolyPlace
2010-09-16
打赏
举报
回复
[Quote=引用 13 楼 vanbastenliuyingqin 的回复:]
我单独用一个窗体做测试。上下键没有问题。但是这个窗体也能接受其他的键 如a b c等等。
[/Quote]
所有的键都会捕获,这个就要看你的判断了
vanbastenliuyingqin
2010-09-16
打赏
举报
回复
我单独用一个窗体做测试。上下键没有问题。但是这个窗体也能接受其他的键 如a b c等等。
HolyPlace
2010-09-16
打赏
举报
回复
你的窗体上面是不是有其他地方获取了光标,你单独建一个没有任何控件的窗体试试
vanbastenliuyingqin
2010-09-16
打赏
举报
回复
上下键触发不了keydown事件。打断点也没有用。
vanbastenliuyingqin
2010-09-16
打赏
举报
回复
这是重写的方法,这样写了以后,只要在keydow这个事件中加messagebox弹出一下,便可以触发上下键。
vanbastenliuyingqin
2010-09-16
打赏
举报
回复
protected override bool IsInputKey(Keys keyData)
{
switch(keyData)
{
case Keys.Down:
this.btnNextPage_ItemClick(null,null);
break;
case Keys.Up:
this.btnPrePage_ItemClick(null,null);
break;
case Keys.Left:
this.btnLeft_ItemClick(null,null);
break;
case Keys.Right:
this.btnRight_ItemClick(null,null);
break;
}
return true;
}
HolyPlace
2010-09-16
打赏
举报
回复
if(e.KeyCode==Keys.Down)
这个写法是没有问题的,你在那个地方打个断点调试一下,看是否跑进去了
还有this.btnNextPage_ItemClick(null,null);这个里面传null会不会你那边有影响,把当前对象传进去
vanbastenliuyingqin
2010-09-16
打赏
举报
回复
测试程序很容易就捕获到了上下键,但是这个程序就是不行。用了IsInputKey方法后能捕获了,但是必须在keydown事件里加上messagebox,弹出一下才能触发。
vanbastenliuyingqin
2010-09-16
打赏
举报
回复
private void CFrmView_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
//MessageBox.Show(e.KeyCode.ToString());
//MessageBox.Show(e.ToString());
if(e.KeyCode==Keys.Down)
this.btnNextPage_ItemClick(null,null);
if(e.KeyCode==Keys.Menu)
this.btnNextPage_ItemClick(null,null);
if(e.KeyCode==Keys.Up)
this.btnPrePage_ItemClick(null,null);
if((Control.ModifierKeys & Keys.Control)==Keys.Control)
{
if(e.KeyCode==Keys.A)
{
//MessageBox.Show("按下了ctrl+A");
btnSelAll_ItemClick(null,null);
}
}
}
porschev
2010-09-16
打赏
举报
回复
[Quote=引用 1 楼 vanbastenliuyingqin 的回复:]
笔记本键盘和普通电脑的键盘没有什么本质的区别吧?我是用的笔记本
[/Quote]
不会是这个问题。。还是代码写的有问题
HolyPlace
2010-09-16
打赏
举报
回复
把你的代码贴出来看看
vanbastenliuyingqin
2010-09-16
打赏
举报
回复
设置了,其他的键都可以捕获的。
HolyPlace
2010-09-16
打赏
举报
回复
设置keyPreview属性未true试试
vanbastenliuyingqin
2010-09-16
打赏
举报
回复
笔记本键盘和普通电脑的键盘没有什么本质的区别吧?我是用的笔记本
C#
解析xml/json/excel
C#
解析xml/json/excel 1、
C#
解析xml文件
C#
中判断浮点数double/float是否相等
一、float型与零值比较的语句 if(x < -0.000001 && x > 0.000001) // !=0 if(x > -0.000001 && x < 0.000001)// =0 二、float型与float型如何判断相等 浮点数的表示是不精确的,不能直接比较两个数是否完全相等,一般都是在允许的某个范围内认为像个浮点数相等, 如有两个浮点数a,b,允许的误差范围为1e-6,则abs(a-b)<=1e-6,即可认为a和b相等
C#
之XML操作
DEMO1 XML文档 <skills> <skill> <id>2</id> <name lang="cn">天下无双</name> <damage>123</damage> </skill> <skill> <id>3...
C#
Encoding.GetEncoding 编码列表
原文:
C#
Encoding.GetEncoding 编码列表 代码页 名称 显示名称 37 IBM037 IBM EBCDIC(美国 - 加拿大) 437 IBM437 OEM 美国 500 IBM500 IBM EBCDIC(国际) ...
C#
XML文件读取
前言 xml也是一种文本格式 我们一般将信息存储在节点属性和节点内容中, 通过遍历获得 步骤 获取根节点 然后获取根节点的所有子节点 遍历节点,将属性值或节点内容赋给实体类的属性
C#
中内置有对xml的解析库, using System. Xml &lt;SkillInfo&gt; &lt;SkillList&gt; &lt;Skill Sk.
C#
111,129
社区成员
642,535
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章