修改器+不同的图表,Winforms
modifier + different char, Win Forms
假设我的应用程序包含富文本框和一个按钮。我希望当用户在 RTB 中按下某个键时启用该按钮,但它不能是任何修饰符。
我可以在 PreviewKeyDown 之类的一些 KeyEvent 中处理这个问题,但是当我按下修饰符 + 其他字符时它不起作用,例如 SHIFT + S,这是有效的,因为结果是字母 S。有没有办法分开我的需求还是我应该使用一些不同的方法?我可以使用 TextChanged,但我已经编写了更多操作,我更愿意那样做。
简单说明:
private void richTextBox_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{
if (!e.Alt && !e.Control && !e.Shift)
{
this.button1.Enabled = true;
else
this.button1.Enabled = false;
}
}
由于 KeyPress
事件发生在按下字符、space 或后退space 键且控件具有焦点且修改键对此事件没有影响时,似乎使用 KeyPress
可能会对您有所帮助。
但您最好考虑处理 TextChanged
事件并检查 TextLength
,因为用户可以在 RichtextBox 中粘贴内容,这样 none 键事件就会触发。
假设我的应用程序包含富文本框和一个按钮。我希望当用户在 RTB 中按下某个键时启用该按钮,但它不能是任何修饰符。
我可以在 PreviewKeyDown 之类的一些 KeyEvent 中处理这个问题,但是当我按下修饰符 + 其他字符时它不起作用,例如 SHIFT + S,这是有效的,因为结果是字母 S。有没有办法分开我的需求还是我应该使用一些不同的方法?我可以使用 TextChanged,但我已经编写了更多操作,我更愿意那样做。
简单说明:
private void richTextBox_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{
if (!e.Alt && !e.Control && !e.Shift)
{
this.button1.Enabled = true;
else
this.button1.Enabled = false;
}
}
由于 KeyPress
事件发生在按下字符、space 或后退space 键且控件具有焦点且修改键对此事件没有影响时,似乎使用 KeyPress
可能会对您有所帮助。
但您最好考虑处理 TextChanged
事件并检查 TextLength
,因为用户可以在 RichtextBox 中粘贴内容,这样 none 键事件就会触发。