【问题标题】:C# Enter Timestamp at Enter in RichtexboxC#在Richtextbox中输入时间戳
【发布时间】:2015-05-14 12:56:52
【问题描述】:

每次我在键盘上点击“enter”时,我都会尝试将时间戳添加到富文本框中。下面的代码部分有效,但是在 Enter 时在我的时间戳下方添加了一个新行。然后我必须退格键在我的时间戳旁边输入。

任何建议请发送。

private void richTextBox2_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode ==  Keys.Return)
    {
        richTextBox2.SelectedText = DateTime.Now.ToString() + " --";                
    }                  
}

【问题讨论】:

  • 到目前为止你有什么问题?
  • 该新行必须是您刚刚按下的“输入”。它不会忽略您通过按回车键想要换行这一事实,它只是在时间戳之后添加它。您可以尝试使用空字符串覆盖 e.KeyCode 以防止添加或更改 e.Handled 状态,这类似于 jQuery 的“PreventDefault”方法。
  • 你在用什么WPF,winforms ??
  • @Nick:我认为e.Handled = true; 会给出想要的输出。
  • 它可以工作...但是在输入时它只是不断将时间戳添加到同一行并创建新行。

标签: c# visual-studio timestamp return richtextbox


【解决方案1】:

如下修改你的代码:

private void richTextBox2_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.Return)
    {
        richTextBox2.SelectedText = DateTime.Now.ToString() + " --";
        e.Handled = true;
    }
}

当你按下回车键时,会插入一个新行。所以 e.Handled 不会让这种情况发生。

【讨论】:

  • 嗨,我确实想要换行但带有时间戳并在时间戳旁边输入文本。像凌晨 03:49 -- (在此处输入文本)。而不是选择退格来输入所需的文本。
猜你喜欢
  • 2018-05-30
  • 2023-03-14
  • 1970-01-01
  • 2014-08-15
  • 2019-08-24
  • 1970-01-01
  • 2014-02-22
  • 1970-01-01
相关资源
最近更新 更多