限制wpf文本框中的按键

本文关键字:wpf 文本 限制 | 更新日期: 2023-09-27 18:12:10

我在WPF中有TextBox,我需要通过粘贴(ctrl +v)而不是键入填充框。所以我需要限制整个按键,除了ctrl+v。由于WPF没有按键事件,我面临的问题是限制按键

限制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();
    }