读当前行

时间:2014-04-12 22:52:26

标签: c# forms line richtextbox

所以我在互联网上搜索了大约2个小时的解决方案,所以我希望你能帮助我:)真的我试图做的是当用户按下 ENTER RichTextBox它会在新行中添加一个标签 示例:与编码程序一样。在哪里按 ENTER 并自动对齐。

到目前为止我的代码:

private void richTextBox1_KeyPress(object sender, KeyPressEventArgs e)
{
    if (e.KeyChar == (char)Keys.Enter)
    {
        //This is were the code should be
    }
}

2 个答案:

答案 0 :(得分:0)

追加' \ t'转义序列完美无缺,因为Enter已添加新行。

if (e.KeyChar == (char)Keys.Enter)
{
     richTextBox1.AppendText("\t");

      // Edited After Comment
     var PrevLine = richTextBox2.Lines[richTextBox2.Lines.Count() - 1].ToString();
     var TabsCount = System.Text.RegularExpressions.Regex.Matches(PrevLine, "\t").Count;
}

答案 1 :(得分:0)

这就是我提出的:

  

使用System.Text.RegularExpressions;

if (e.KeyChar == (char)Keys.Enter)
{
    richTextBox1.AppendText(Environment.NewLine);
    int prevLine = richTextBox1.GetLineFromCharIndex(richTextBox1.SelectionStart) - 1;
    MatchCollection mc = Regex.Matches(richTextBox2.Lines[prevLine], "\s+");
    if (mc.Count > 0)
        richTextBox1.AppendText(mc[0].Value);
    e.Handled = true;
}