问题标签 [keypreview]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
529 浏览

.net - KeyPreview 未在控制之前处理 KeyUp 事件

我有一个表单 myForm,它的 KeyPreview 设置为 true。

这个想法是我想捕获 CTRL-Enter 并触发表单的提交按钮,无论哪个文本框(或其他控件)可能具有焦点。

所以我设置了这个方法:

这正是它所说的。问题是,在具有焦点的文本框中也会触发回车键击,因此文本框现在在单词中间或光标所在的任何位置都有一个换行符。根据 MSDN 文档:

当此属性设置为 true 时,表单将接收所有 KeyPress、KeyDown 和 KeyUp 事件。在窗体的事件处理程序完成对击键的处理之后,击键被分配给具有焦点的控件。

不幸的是,这不是真的,我已经通过单步执行代码验证了文本框确实在 myForm_KeyUp 代码被触发之前显示了新的换行符。

我试过同时添加

无效,因为文本框已经显示了换行符。

有任何想法吗?我错过了什么吗?

0 投票
4 回答
12751 浏览

c# - 当按下 ESC 键时如何关闭表单,但前提是没有 Control 处理它?

KeyPreview由于,或其他原因ProcessKeyEventArgs,我有一个在按下 ESC 键时自行关闭的表单。ProcessCmdKey但是我在那个表单上有一个控件,当按下 ESC 时它会做非常相关的事情(它会隐藏自己),并且在发生这种情况时不应该关闭表单。

控件使用该KeyDown事件并将SuppressKeyPress标志设置为 true,但这发生上述表单键预览之后,因此没有效果。

有某种 KeyPostview 吗?

当控件有相关的按键使用时,我如何不关闭表单?

编辑:处理 ESC 的控件是嵌入在佣人 ListView 中的文本框。当用户单击单元格时会出现文本框,从而启用编辑。为了验证新文本, ENTER 会很好(这已经有效,因为将焦点放在其他任何东西上)。要取消版本,ESC似乎是最自然的。

0 投票
3 回答
3226 浏览

c# - 如何防止程序截图

有没有办法保护程序免受用户任何形式的截图?例如,当用户按下键盘上的 Print Screen 键时,我不希望我的程序出现在屏幕截图中。是否可以在程序中以某种方式进行键预览,以最小化用户按 Print Screen 键时的程序?

我想要这个用于 C# WinForms。

PS我知道这有点愚蠢,用户可以拍摄屏幕的真实照片:P 但只是我的好奇心!

0 投票
2 回答
1362 浏览

c# - C#:在表单上使用 TextPreview 时,TextBox 不接收键

我正在 c# 中以 windows 形式实现搜索功能。我已KeyPreview在表单上设置为 true 并添加了一个事件处理程序,KeyDown以便我可以捕获ctrl+f,escenter.

我很好地抓住了这些键,我可以让我的文本框出现,但我无法在框中输入。所有的键都可以,PortsTraceForm_KeyDown(...)但它们永远不会进入文本框。根据 msdn 页面 about KeyPreview,将 e.Handled 设置为 false 应该会导致事件传递到焦点视图(文本框),但这并没有发生。我没有KeyDown为文本框注册事件,所以它应该使用默认行为。我错过了什么吗?

KeyDown 事件:

显示搜索栏:

隐藏搜索栏:

0 投票
2 回答
205 浏览

c# - 为什么此代码仅在一个实例中有效?

我已将表单的KeyPreview属性设置为true.

我添加了这段代码:

当我捣碎F10时,它按预期工作;F9然而,mashing什么都不做。

tabPageDuckBill是显示的设计时/默认值tabPage。为什么将F10我带到“其他”标签页,但F9又不回到原来的页面?

0 投票
1 回答
2786 浏览

forms - MS Access 中表单的“键预览”属性是什么意思?

我现在正在 MS Access 中进行编程,在浏览表单的属性时,我遇到了一个名为“key preview”的属性。MS Access 文档告诉它用于在控件的键盘事件之前调用表单的键盘事件。

我不确定这意味着什么,为什么可以使用这个属性?

0 投票
1 回答
1971 浏览

forms - 表单密钥预览不起作用

我创建了 mainform(自动创建表单)和 Form1(可用表单)。我用来调用form1的方法是这样的

问题是为什么 Form1 中的 KeyPreview 不起作用,即使我已经激活了他的 KeyPreview 是真的?

0 投票
0 回答
675 浏览

android - 键盘键图标预览

我编辑了 sdk 中的自定义键盘。好吧,我已经完成了。

唯一的问题是我不想显示某些键的图标预览,例如

  • 空间
  • 进入
  • 转移
  • alt
  • 删除

现在我知道了如何禁用这些键的图标预览,但是空格键和删除键是可重复的(长按会产生计数操作),所以如果可重复属性为真,那么这些键的预览仍然会显示。

我必须关闭可重复属性,这对这两个键来说非常烦人。因为要删除长度为 5 的单词,我必须按删除按钮 5 次..

0 投票
4 回答
8465 浏览

delphi - 在 Delphi 中使用条码扫描器

我正在开发一个 POS(宠物项目),我正在考虑添加一个条形码扫描仪以更快地捕获销售。我现在没有扫描仪,想问一些问题,因为我有点卡住了。

在销售屏幕上,我最初的想法是有一个TEdit组件,当一个人扫描产品时,它会TEdit用字符串填充。现在我遇到的问题是我想让它TEdit不可见,这样人就看不到它。但是一旦你把它变成TEdit隐形的,你就不能把注意力集中在它上面,所以这个计划就行不通了。

那么谁能建议我可以用什么来“捕获”扫描的字符串?我如何让组件监听并等待扫描仪?我假设扫描仪就像一个普通的键盘事件,比如按下或按下按钮。

0 投票
2 回答
1002 浏览

c# - 如何检索通过扫描插入的 C# Key(*)Event 中的字符串?(Windows CE 5)

我正在开发一个 Win CE 5 应用程序,该应用程序捕获通过条形码扫描仪扫描的数据。应用程序应该支持一些“系统条形码”,即触发应用程序功能的预定义条形码。

这些条形码必须在整个主机中工作。所以我将主机的“KeyPreview”属性设置为true,并在主机的KeyDown事件上注册了一个KeyEventHandler。

我的问题是,我不知道如何获取完整的扫描字符串。该字符串长度为 12 个字符,并以换行符结尾。是否有可能在 EventHandler 中获取整个字符串?

预先感谢您的任何帮助。