11
private void button1_Click(object sender, EventArgs e)
{
    richTextBox1.AppendText("\r\n");
    richTextBox1.Focus();
    string s = "Enter ";
    richTextBox1.AppendText(s + "\r\n");
    richTextBox1.SelectionStart = richTextBox1.Text.Length - (s.Length +1);
    richTextBox1.SelectionLength = s.Length +1;
    richTextBox1.SelectionFont = new Font("Arial", 12, FontStyle.Bold);
    richTextBox1.DeselectAll();
    richTextBox1.SelectionStart = richTextBox1.Text.Length;
    richTextBox1.SelectionLength = richTextBox1.Text.Length;
    richTextBox1.SelectionFont = new Font("Arial", 12, FontStyle.Regular);
    richTextBox1.DeselectAll();
}

每次用户单击按钮时,我都希望新的“Enter”位于 RichTextBox 的顶部而不是底部。我该怎么做?

4

3 回答 3

24

从技术上讲,如果您将它插入到文本的顶部,那么您是在“插入”或“前置”,而不是“附加”。;)

您可以使用 SelectedText 属性在 RichTextBox 的开头插入文本。我刚刚敲了一个快速演示应用程序来测试它:

    private void button1_Click(object sender, EventArgs e)
    {
        richTextBox1.SelectionStart = 0;
        richTextBox1.SelectionLength = 0;
        richTextBox1.SelectedText = DateTime.Now.ToString();
    }

当单击 button1 时,它会在 RichTextBox 的开头插入当前时间。

于 2009-05-12T01:18:05.287 回答
3

我喜欢的最简单的方法是,

    private void button1_Click(object sender, EventArgs e)
    {
        richTextBox1.Text = DateTime.Now.ToString() + richTextBox1.Text;
    }

它将在开始时添加当前日期时间。

于 2013-09-20T08:16:06.447 回答
1

以前的消息似乎已过时。我通过以下方式解决它:

Paragraph newExternalParagraph = new Paragraph();
newExternalParagraph.Inlines.Add( new Bold(new Run("[" + hour.ToString() + ":" + minute.ToString() + "]"))
{
    Foreground = Brushes.Yellow
});
_consoleText.Document.Blocks.InsertBefore(_consoleText.Document.Blocks.FirstBlock , newExternalParagraph);
于 2018-12-03T10:22:43.853 回答