首席开发人员表示,当他使用我的应用程序时,当他通过方向箭头键在TableLayoutPanel上的TextBoxes之间移动时,他的键盘会发出蜂鸣声.

但是,我没有听到这样的听觉活动.

这是我的代码:

// Had to intercept Up and Down arrows from Windows
private void textBoxPlatypi_PreviewKeyDown(object sender,PreviewKeyDownEventArgs e) {
    TextBox tb = (TextBox)sender;

    if (e.KeyCode.Equals(Keys.Up)) {
        SetFocusOneRowUp(tb.Name);
        return;
    }
    if (e.KeyCode.Equals(Keys.Down)) {
        SetFocusOneRowDown(tb.Name);
        return;
    }
}

private void textBoxPlatypi_KeyDown(object sender,KeyEventArgs e) {
    TextBox tb = (TextBox)sender;

    if (e.KeyCode.Equals(Keys.Left)) {
        SetFocusOneColumnBack(tb.Name);
        e.Handled = true;
        return;
    }
    if (e.KeyCode.Equals(Keys.Right)) {
        SetFocusOneColumnForward(tb.Name);
        e.Handled = true;
        return;
    }
}

..他想也许我需要“e.Handled”,但这在PreviewKeyDown事件中不可用.

有没有办法抑制哔哔声(这显然只发生在某些键盘或特定设置上(他使用的是Windows7,我还在使用XP))?

UPDATE

我现在有了这个代码:

private void textBoxPlatypus1_PreviewKeyDown(object sender,PreviewKeyDownEventArgs e) {
    switch (e.KeyCode) {
        case Keys.Down:
        case Keys.Up:
            e.IsInputKey = true;
            break;
    }
}

private void textBoxPlatypus1_KeyDown(object sender,KeyEventArgs e) {
    TextBox tb = (TextBox)sender;

    if (e.KeyCode.Equals(Keys.Up)) {
        SetFocusOneRowUp(tb.Name);
        e.Handled = true;
        return;
    }
    if (e.KeyCode.Equals(Keys.Down)) {
        SetFocusOneRowDown(tb.Name);
        e.Handled = true;
        return;
    }

    if (e.KeyCode.Equals(Keys.Left)) {
        SetFocusOneColumnBack(tb.Name);
        e.Handled = true;
        return;
    }
    if (e.KeyCode.Equals(Keys.Right)) {
        SetFocusOneColumnForward(tb.Name);
        e.Handled = true;
        return;
    }
}

……但他仍然听到哔哔声(我没有).

他在阿拉斯加并使用Windows 7;我在加州并使用XP.我不知道是否存在某些组合/不匹配问题…

再次更新

我知道这对某些人来说可能是令人震惊的,但阿拉斯加/加利福尼亚的断线与此无关.我现在也听到了哔哔声,而且它不是来自箭头键.当在TextBox中输入一个值然后,如果该文本框已经有一个字符,焦点将移动到下一个textBox并在那里输入值(这是导致这种情况发生的代码).但令人恼火的哔哔声似乎是随机的 – 我还没有想出它发出哔哔声的模式(有时会发出哔哔声,有时候却没有)……有没有人碰过这样的事情,或者更好的是,知道如何抑制哔哔声?我正在做的就是按下键盘上方的“1”或“2”键.

解决方法

PreviewKeyDownEvent中没有办法像普通的KeyDown事件那样处理/抑制KeyEvent.文档建议将PreviewKeyDownEventArgs.IsInputKey属性设置为true,以便处理KeyDown事件中通常不可用的按键操作.

从链接上方,他们使用一个按钮作为示例:

Some key presses,such as the TAB,RETURN,ESC,and arrow keys,are typically ignored by some controls because they are not considered input key presses… By handling the PreviewKeyDown event for a Button and setting the IsInputKey property to true,you can raise the KeyDown event when the arrow keys are pressed. However,if you handle the arrow keys,the focus will no longer move to the prevIoUs or next control.

c# – 某些键盘比其他键盘更啰嗦吗?的更多相关文章

  1. Android的Keycode最小化软键盘按钮

    我正在使用Android3.2的软键盘.问题是我无法找到左下角按钮的keyCode,以最小化键盘.我使用onKeyDown的switchcase来显示keyCode,它似乎是唯一没有值的.我认为它将具有与后退按钮相同的代码,因为它取代了它,但没有这样的运气.解决方法它只是后退按钮.您可以通过覆盖其行为来实现此目的:并且:

  2. android – ActionBarSherlock:用菜单按钮打开子菜单

    =null因为没有操作栏的旧版Android的兼容性问题.如果您对所有版本使用ActionBarSherlock,这不是必需的.

  3. Android – 如果没有互联网连接则显示消息并继续检查

    我已经做了几天了.我刚开始使用Android.我有两个问题.我想检查互联网是否可用.如果它是启动webView,如果没有发出警报并阻止webView加载.我试过这个,但如果没有互联网连接,它会强行关闭.如何让它发送消息并停止加载webview.还有一种方法可以连续检查连接,以便在网页断开连接时不显示网页404吗?

  4. Android:更改后退按钮的操作

    我正在制作游戏,我有一个选项页面可以打开或关闭音乐.我想覆盖后退按钮,以便它返回到主页,你会明白为什么当你看到我的代码时:}任何帮助都会非常棒,谢谢.更新:添加此,仍然不起作用:解决方法覆盖Activity的onKeyDown(),这里你可以处理各种键或者也可以覆盖onBackPresses()

  5. Android DroidGap禁用返回按钮

    请任何人建议,如何在使用PhoneGap时禁用按钮按钮事件?我需要在我的Activity中执行某些操作来控制后退按钮事件.即使以下代码在我的活动中运行良好,但与DroidGap一起使用时不起作用.解决方法在appView上调用setonKeyListener可以帮助我.我只是在上面的代码片段中做了一个微小的改动,如下所示:EDITED实际上在按键事件时动作两次动作–动作Up&行动下降所以,为了获得关键事件,应该使用以下内容.

  6. 用android抓住按键

    如何用AndroidSDK抓住手机按键?我一直在寻找几个小时,没有找到任何东西..例如:在某些情况下,当用户按下手机上的“挂断”按钮时,我想抓住该信息,然后在该消息到达操作系统之前丢弃该消息.这可能吗?

  7. 快速实现一个简单的canvas迷宫游戏的示例

    本篇文章主要介绍了快速实现一个简单的canvas迷宫游戏的示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  8. JS键盘的键码(event.keyCode)图片版

    js获取键盘按键的键码event.keyCode,下面则是键盘的键码分布,记录一下,以备不时之需

  9. 键盘 keycode的值 javascript时触发事件时很有用的要素

    键盘keycode的值 编写javascript时触发事件时很有用的要素,大家可以收藏一下。

  10. 使用window.onbeforeunload事件中的window.event.keyCode在javascript中捕获f5 keypress事件始终为0而不是116

    我正在创建一个MVC应用程序.在关闭应用程序(即窗口/选项卡)时,将会话中的变量设置为null,但在刷新应用程序时却没有.我通过以下代码尝试了它.但是当按下F5时,“window.event.keyCode”始终为0而不是116.因为我的变量即使按F5按键也变为空,这不是我的要求.即使当应用程序(即网页)关闭时,即使它是0(这可能是正确的).请注意,代码的上述部分位于.cshtml文件中.任何人都

随机推荐

  1. c# – (wpf)Application.Current.Resources vs FindResource

    所以,我正在使用C#中的WPF创建一个GUI.它看起来像这样:它现在还没有完成.这两行是我尝试制作一种数据表,它们在XAML中是硬编码的.现在,我正在C#中实现添加新的水果按钮功能.我在XAML中有以下样式来控制行的背景图像应该是什么样子:因此,在代码中,我为每列col0,col1和col2创建一个图像,如果我使用以下代码,它添加了一个如下所示的新行:如你所见,它不太正确……为什么一个似乎忽略了一些属性而另一个没有?

  2. c# – 绑定DataGridTemplateColumn

    似乎我已经打了个墙,试图在DataGrid上使用DataTemplates.我想要做的是使用一个模板来显示每个单元格的两行文本.但是似乎无法以任何方式绑定列.以下代码希望显示我想做的事情.注意每个列的绑定:模板列没有这样的东西,因此,这个xaml不可能工作.我注定要将整个DataTemplate复制到每个列,只是对每个副本都有不同的约束?解决方法我不完全确定你想要做什么,但如果您需要获取整行的DataContext,可以使用RelativeSource绑定来移动视觉树.像这样:

  3. c# – 学习设计模式的资源

    最近我来到了这个设计模式的概念,并对此感到非常热情.你能建议一些帮助我深入设计模式的资源吗?

  4. c# – 是否有支持嵌入HTML页面的跨操作系统GUI框架?

    我想开发一个桌面应用程序来使用跨系统,是否有一个GUI框架,允许我为所有3个平台编写一次代码,并具有完全可脚本化的嵌入式Web组件?我需要它有一个API来在应用程序和网页之间进行交流.我知道C#,JavaScript和一些python.解决方法Qt有这样的事情QWebView.

  5. c# – 通过字符串在对象图中查找属性

    我试图使用任意字符串访问嵌套类结构的各个部分.给出以下(设计的)类:我想要从Person对象的一个实例的“PersonsAddress.HousePhone.Number”获取对象.目前我正在使用反思来做一些简单的递归查找,但是我希望有一些忍者有更好的想法.作为参考,这里是我开发的(crappy)方法:解决方法您可以简单地使用标准的.NETDataBinder.EvalMethod,像这样:

  6. c# – 文件下载后更新页面

    FamilyID=0a391abd-25c1-4fc0-919f-b21f31ab88b7&displaylang=en&pf=true它呈现该页面,然后使用以下元刷新标签来实际向用户提供要下载的文件:你可能需要在你的应用程序中做类似的事情.但是,如果您真的有兴趣在文件完全下载后执行某些操作,那么您的运气不佳,因为没有任何事件可以与浏览器进行通信.执行此操作的唯一方法是上传附件时使用的AJAXupload.

  7. c# – 如何在每个机器应用程序中实现单个实例?

    我必须限制我的.net4WPF应用程序,以便每台机器只能运行一次.请注意,我说每个机器,而不是每个会话.我使用一个简单的互斥体实现单实例应用程序,直到现在,但不幸的是,这样一个互斥是每个会话.有没有办法创建机器互连,还是有其他解决方案来实现每个机器应用程序的单个实例?

  8. c# – WCF和多个主机头

    我的雇主网站有多个主机名,都是同一个服务器,我们只是显示不同的皮肤来进行品牌宣传.不幸的是,在这种情况下,WCF似乎不能很好地工作.我试过overridingthedefaulthostwithacustomhostfactory.这不是一个可以接受的解决方案,因为它需要从所有主机工作,而不仅仅是1.我也看过thisblogpost,但是我无法让它工作,或者不是为了解决我的问题.我得到的错误是“这

  9. c# – ASP.NET MVC模型绑定与表单元素名称中的虚线

    我一直在搜索互联网,试图找到一种方式来容纳我的表单元素的破折号到ASP.NET的控制器在MVC2,3或甚至4中的默认模型绑定行为.作为一名前端开发人员,我更喜欢在我的CSS中使用camelCase或下划线进行破折号.在我的标记中,我想要做的是这样的:在控制器中,我会传入一个C#对象,看起来像这样:有没有办法通过一些正则表达式或其他行为来扩展Controller类来适应这种情况?我讨厌这样的事实,我必须这样做:甚至这个:思考?

  10. c# – 用户界面设计工具

    我正在寻找一个用户界面设计工具来显示文档中可能的GUI.我不能生成代码.我知道MicrosoftVisio提供了一个功能.但有什么办法吗?您使用哪种软件可视化GUI?

返回
顶部