C# 限制wpf文本框中的按键

C# 限制wpf文本框中的按键,c#,wpf,keypress,keyboard-events,C#,Wpf,Keypress,Keyboard Events,我有WPF中的文本框,我只需要通过粘贴(ctrl+v)而不是键入来填充该框。所以我需要限制整个按键,除了ctrl+v。由于WPF没有按键事件,如果您不允许右键单击+粘贴,而只允许Ctrl+V,我将面临限制按键的问题,我只需检查是否按下了Ctrl键修改器,并阻止其他任何操作。如果您不允许右键单击+粘贴,我将检查是否按下了Ctrl键修改器,但是只有Ctrl+V,我只需检查是否按下了Ctrl键修改器并阻止其他操作。前提是您不允许右键单击+粘贴,而只允许Ctrl+V,我只需检查是否按下了Ctrl键修改器

我有WPF中的文本框,我只需要通过粘贴(ctrl+v)而不是键入来填充该框。所以我需要限制整个按键,除了ctrl+v。由于WPF没有按键事件,如果您不允许
右键单击+粘贴
,而只允许
Ctrl+V
,我将面临限制按键的问题,我只需检查是否按下了Ctrl键修改器,并阻止其他任何操作。

如果您不允许
右键单击+粘贴
,我将检查是否按下了Ctrl键修改器,但是只有
Ctrl+V
,我只需检查是否按下了Ctrl键修改器并阻止其他操作。

前提是您不允许
右键单击+粘贴
,而只允许
Ctrl+V
,我只需检查是否按下了Ctrl键修改器并阻止其他操作。

如果您不允许
右键单击+粘贴
,但只允许
Ctrl+V
,我只需检查是否按下了Ctrl键修改器并阻止其他操作。

您可以将此向下键处理程序添加到文本框:

  private void textBox1_KeyDown(object sender, KeyEventArgs e)
   {
      if (e.Modifiers == Keys.Control && e.Key==Key.V)
       {
         //Logic here
       }
      else
        e.handled=true;
   }

您可以将此按键向下处理程序添加到文本框:

  private void textBox1_KeyDown(object sender, KeyEventArgs e)
   {
      if (e.Modifiers == Keys.Control && e.Key==Key.V)
       {
         //Logic here
       }
      else
        e.handled=true;
   }

您可以将此按键向下处理程序添加到文本框:

  private void textBox1_KeyDown(object sender, KeyEventArgs e)
   {
      if (e.Modifiers == Keys.Control && e.Key==Key.V)
       {
         //Logic here
       }
      else
        e.handled=true;
   }

您可以将此按键向下处理程序添加到文本框:

  private void textBox1_KeyDown(object sender, KeyEventArgs e)
   {
      if (e.Modifiers == Keys.Control && e.Key==Key.V)
       {
         //Logic here
       }
      else
        e.handled=true;
   }
所以试试这个:

 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 = "";
      }

  }
所以试试这个:

 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 = "";
      }

  }
所以试试这个:

 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 = "";
      }

  }
所以试试这个:

 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 = "";
      }

  }


使用WPF样式并使用应用程序命令。粘贴并使文本框为只读

使用WPF样式并使用应用程序命令。粘贴并使文本框为只读

使用WPF样式并使用应用程序命令。粘贴并使文本框为只读

使用WPF样式并使用应用程序命令。粘贴并使文本框为只读

实际上,我还没有尝试过这个方法,但是您可以设置一个“按键”处理程序来检查输入字符串的长度。因此如果(input.length()>1)//接受输入else//input=“”@JohnAugust如果他一次只粘贴一个字符会怎么样?谢谢兄弟,但是如果我粘贴内容,那么长度会增加,并且会限制内容…啊,是的,所有的优点都很好,特别是如果只粘贴一个字符。在这种情况下,请查看“modifiers”属性:然后将其添加到if语句检查中。换句话说,如果您看到if(e.KeyCode==Keys.V&&e.Modifiers==Keys.Control),则接受输入,否则输入=”;实际上,我还没有尝试过这个方法,但是您可以设置一个“按键”处理程序来检查输入字符串的长度。因此如果(input.length()>1)//接受输入else//input=“”@JohnAugust如果他一次只粘贴一个字符会怎么样?谢谢兄弟,但是如果我粘贴内容,那么长度会增加,并且会限制内容…啊,是的,所有的优点都很好,特别是如果只粘贴一个字符。在这种情况下,请查看“modifiers”属性:然后将其添加到if语句检查中。换句话说,如果您看到if(e.KeyCode==Keys.V&&e.Modifiers==Keys.Control),则接受输入,否则输入=”;实际上,我还没有尝试过这个方法,但是您可以设置一个“按键”处理程序来检查输入字符串的长度。因此如果(input.length()>1)//接受输入else//input=“”@JohnAugust如果他一次只粘贴一个字符会怎么样?谢谢兄弟,但是如果我粘贴内容,那么长度会增加,并且会限制内容…啊,是的,所有的优点都很好,特别是如果只粘贴一个字符。在这种情况下,请查看“modifiers”属性:然后将其添加到if语句检查中。换句话说,如果您看到if(e.KeyCode==Keys.V&&e.Modifiers==Keys.Control),则接受输入,否则输入=”;实际上,我还没有尝试过这个方法,但是您可以设置一个“按键”处理程序来检查输入字符串的长度。因此如果(input.length()>1)//接受输入else//input=“”@JohnAugust如果他一次只粘贴一个字符会怎么样?谢谢兄弟,但是如果我粘贴内容,那么长度会增加,并且会限制内容…啊,是的,所有的优点都很好,特别是如果只粘贴一个字符。在这种情况下,请查看“modifiers”属性:然后将其添加到if语句检查中。换句话说,如果您看到if(e.KeyCode==Keys.V&&e.Modifiers==Keys.Control),则接受输入,否则输入=”;Do it WPF style and use ApplicationCommand.粘贴并使文本框只读。Do it WPF style and use ApplicationCommand.粘贴并使文本框只读。Do it WPF style and use ApplicationCommand.粘贴并使文本框只读。Do it WPF style and use ApplicationCommand.粘贴并使文本框只读。@jeevan_jk尝试并返回寻求帮助。。。让别人为你编写代码是不好的。@非常感谢我所实现的一切it@jeevan_jk试着回来寻求帮助。。。让别人为你编写代码是不好的。@非常感谢我所实现的一切it@jeevan_jk试着回来寻求帮助。。。让别人为你编写代码是不好的。@非常感谢我所实现的一切it@jeevan_jk试着回来寻求帮助。。。让别人为你编写代码是不好的。@非常感谢你,我已经实现了它
<TextBox IsReadOnly="True" Name="Policy_text">
   <TextBox.CommandBindings>
       <CommandBinding Command="ApplicationCommands.Paste" CanExecute="PasteCommand_CanExecute" Executed="PasteCommand_Executed" />
   </TextBox.CommandBindings>
</Textbox>