所以我在互联网上搜索了大约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
}
}
答案 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;
}