限制wpf文本框中的按键
本文关键字:wpf 文本 限制 | 更新日期: 2023-09-27 18:12:10
我在WPF中有TextBox,我需要通过粘贴(ctrl +v)而不是键入填充框。所以我需要限制整个按键,除了ctrl+v。由于WPF没有按键事件,我面临的问题是限制按键
使用WPF样式并使用ApplicationCommands。粘贴并将文本框设置为只读。
您可以将Key_Down处理程序添加到textBox:
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.Modifiers == Keys.Control && e.Key==Key.V)
{
//Logic here
}
else
e.handled=true;
}
如果您不允许Right Click + Paste
,而只允许Ctrl + V
,我会简单地检查Ctrl键修饰符是否被按下,并防止其他一切
那么试试这个:
myTextBox.KeyDown += new KeyEventHandler(myTextBox_KeyDown);
private void myTextBox_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.V && e.Modifiers == Keys.Control)
{
input = myTextBox.Text;
}
else
{
input = "";
}
}
<TextBox IsReadOnly="True" Name="Policy_text">
<TextBox.CommandBindings>
<CommandBinding Command="ApplicationCommands.Paste" CanExecute="PasteCommand_CanExecute" Executed="PasteCommand_Executed" />
</TextBox.CommandBindings>
</Textbox>
和
后面的代码private void PasteCommand_CanExecute(object sender, CanExecuteRoutedEventArgs e)
{
e.CanExecute = Clipboard.ContainsText();
}
private void PasteCommand_Executed(object sender, ExecutedRoutedEventArgs e)
{
Policy_text.Paste();
}