在wpf TextBox中按返回时添加文本

时间:2015-05-06 05:00:38

标签: c# wpf

我有一个具有AcceptsReturn = True的TextBox。当用户按下返回时,新行将作为第一个字母" - "。 我该怎么做?

4 个答案:

答案 0 :(得分:0)

步骤1:编写一种方法,检测按下"返回"关键按键。 第2步:添加" - "到TextBox' s .text

答案 1 :(得分:0)

挂钩PreviewKeyDown事件:

<TextBox PreviewKeyDown="UIElement_OnKeyDown"
         AcceptsReturn="True"
         x:Name="TextBox"
</TextBox>


private void UIElement_OnKeyDown(object sender, KeyEventArgs e)
{
    if (e.Key == Key.Enter)
    {
        // what u need
        // TextBox.Text += "-";
    }
}

答案 2 :(得分:0)

可能有其他更聪明的方法可以做到这一点,但一个简单的解决方案是将一个PreviewKeyDown添加到TextBox。 (注意:使用accept返回KeyDown不会触发它由文本框处理。)

PreviewKeyDown="TextBox_KeyDown"

 private void TextBox_KeyDown(object sender, KeyEventArgs e)
 {
      if(e.Key == Key.Return)
      {
          (sender as TextBox).Text += "-";
      }
 }

这应该在新行中添加 - 。

答案 3 :(得分:-1)

订阅TextBox KeyDown事件并检测是否按下Enter

<强> XAML

<TextBox ... KeyDown="TextBox_KeyDown"/>

<强> C#

private void TextBox_KeyDown(object sender, KeyEventArgs e)
{
    if (e.Key == Key.Enter)
    {
        TextBox txtBox = sender as TextBox;
        txtBox.Text += Environment.NewLine + "-"; //add new line and "-"
        txtBox.CaretIndex = txtBox.Text.Length;   //caret to the end
    }
}

要使用此方法,您必须false Accept Return属性。