标签: keyeventargs

在CTRL-A(WinForms)上停止响铃

任何想法如何停止的时候拉响系统铃声CTRL- A用来选择在WinForms应用程序的文本?

这是问题所在.创建一个Winforms项目.在表单上放置一个文本框,并在表单上添加以下事件处理程序,以允许CTRL- A选择文本框中的所有文本(无论哪个控件具有焦点).

void Form1_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.A && e.Modifiers == Keys.Control)
    {
        System.Diagnostics.Debug.WriteLine("Control and A were pressed.");
        txtContent.SelectionStart = 0;
        txtContent.SelectionLength = txtContent.Text.Length;
        txtContent.Focus();
        e.Handled = true;
    }
}
Run Code Online (Sandbox Code Playgroud)

它有效,但是尽管e.Handled = true,系统铃声每次都会响起CTRL- A按下.


谢谢回复.

Form上的KeyPreview设置为true - 但这不会阻止系统响铃发声 - 这是我试图解决的问题 - 烦人.

keyeventargs winforms

13
推荐指数
3
解决办法
2367
查看次数

KeyEventArgs.Key to char

有没有办法将WPF转换KeyEventArgs.KeyChar

我试着用KeyInterop:

var x = (Char)KeyInterop.VirtualKeyFromKey(e.Key);
Run Code Online (Sandbox Code Playgroud)

对于数字和字母,它工作正常,但对于其他字符,它没有.例如,OemComma它返回'1/4'而不是','.

我需要它来防止用户输入TextBox除数字和分隔符(即逗号或句号)之外的任何字符.

c# wpf textbox keyeventargs

13
推荐指数
3
解决办法
2万
查看次数

我可以确定KeyEventArg是字母还是数字?

有没有办法确定一个键是否是字母/数字(A-Z,0-9)KeyEventArgs?或者我必须自己制作?我用e.KeyCode找到了一种方法,是准确的吗?

if(((e.KeyCode >= Keys.A       && e.KeyCode <= Keys.Z )
 || (e.KeyCode >= Keys.D0      && e.KeyCode <= Keys.D9 )
 || (e.KeyCode >= Keys.NumPad0 && e.KeyCode <= Keys.NumPad9))
Run Code Online (Sandbox Code Playgroud)

c# event-handling keyeventargs winforms

12
推荐指数
3
解决办法
2万
查看次数

如何从System.Windows.Input.KeyEventArgs获取按下的char?

我有System.Windows.Input.KeyEventArgs变量.我想获得真正的焦炭.例如,我按下}键盘上的按钮.通常它返回字符串, oem..但我想得到}char.怎么做 ?

[编辑]我在TextBox中使用它.

c# wpf keyeventargs

12
推荐指数
2
解决办法
3万
查看次数

KeyEventArgs.KeyData,KeyEventArgs.KeyCode和KeyEventArgs.KeyValue

我对这个问题KeyEventArgsKeyCodeKeyDataKeyValue. KeyCode并且Keydata是键类型,但我不知道它们之间有什么区别.因为KeyValue,我不知道它是什么 - 它有一个int类型,它是否返回char按下的键的值?

我对Key事件没有多少经验; 任何关于它们如何运作以及如何使用它们的解释将不胜感激.

.net c# keycode key-value keyeventargs

11
推荐指数
1
解决办法
6660
查看次数

将System.Windows.Input.KeyEventArgs键转换为char

我需要将事件args作为a char,但是当我尝试转换Key枚举时,我得到的字母和符号与传入的字母和符号完全不同.

你如何正确地将Key转换为char?

这就是我尝试过的

ObserveKeyStroke(this, new ObervableKeyStrokeEvent((char)((KeyEventArgs)e.StagingItem.Input).Key));
Run Code Online (Sandbox Code Playgroud)

编辑:我也没有args上的KeyCode属性.我从InputManager.Current.PreNotifyInput事件中获取它们.

c# wpf keyeventargs

10
推荐指数
1
解决办法
3万
查看次数

有些键盘比其他键盘更加啰嗦吗?

首席开发人员表示,当他使用我的应用程序时,当他通过方向箭头键在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;
    }
}
Run Code Online (Sandbox Code Playgroud)

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

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

UPDATE

我现在有了这个代码:

private void textBoxPlatypus1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e) {
    switch (e.KeyCode) …
Run Code Online (Sandbox Code Playgroud)

c# keyeventargs beep arrow-keys winforms

7
推荐指数
1
解决办法
200
查看次数

如何在WPF中禁止退格键

如何在WPF应用程序中尽可能简单地禁止Backspace-Key?

KeyDown-Event不会捕获DEL和Backspace-Key.

谢谢!

.net c# wpf keydown keyeventargs

6
推荐指数
1
解决办法
4667
查看次数

C#:从KeyEventArgs的KeyData中获取正确的键

我正在捕捉一个KeyDown事件,我需要能够检查当前按下的键是否为:Ctrl+ Shift+ M


我知道我需要使用e.KeyData来自KeyEventArgs中,Keys枚举和一些与枚举标志和位,但我不知道如何检查相结合.

c# enums keyeventargs enum-flags

4
推荐指数
1
解决办法
1万
查看次数

'insert_method_here'没有重载匹配委托'System.EventHandler'

我正在尝试构建一个具有按钮的程序,每次单击该按钮时,它都会移动按钮并添加到分数中.但是,我试图禁用Enter键,或按下时禁止命令.这是我到目前为止所拥有的

private void button1_Click(object sender, EventArgs e, KeyEventArgs k)
    {
        if (k.KeyCode == Keys.Enter)
        {
            k.SuppressKeyPress = true;
        }
        score = score + 10;
        timesClicked++;
        int rand1 = RandomNumber(1, 400);
        int rand2 = RandomNumber(1, 400);
        button1.Location = new Point(rand1, rand2);
        toolStripScore.Text = ("Your score is " + score);
        toolStripClicks.Text = ("You've clicked the button{0} times " + timesClicked);
        winCheck();
    }
Run Code Online (Sandbox Code Playgroud)

这是我为阻止输入密钥进入而添加的内容.

if (k.KeyCode == Keys.Enter) { k.SuppressKeyPress = true; }
Run Code Online (Sandbox Code Playgroud)

然而,它会生成错误..."'button1_Click'没有重载匹配委托'System.EventHandler'"当单击以显示位置时,它会打开Form1.Designer的代码并指向此行."this.button1.Click + = new System.EventHandler(this.button1_Click);"

任何有关解决此问题的帮助都将非常感激.

c# error-handling suppression keyeventargs

2
推荐指数
1
解决办法
3万
查看次数