我想删除已结束的richtextbox的最后一行; semicolumn。我喜欢删除此行,直到;在最后一个半圆之前出现的半圆。
示例:
hello do not delete this line;
hello this sentence will continue...
untill here;
结果应为:
hello do not delete this line;
我的代码:
private void button1_Click_1(object sender, EventArgs e) {
List<string> myList = richTextBox1.Lines.ToList();
if (myList.Count > 0) {
myList.RemoveAt(myList.Count - 1);
richTextBox1.Lines = myList.ToArray();
richTextBox1.Refresh();
}
}
答案 0 :(得分:1)
使用此:
var last = richTextBox1.Text.LastIndexOf(";");
if (last > 0)
{
richTextBox1.Text = richTextBox1.Text.Substring(0, last - 1);
var beforelast = richTextBox1.Text.LastIndexOf(";");
richTextBox1.Text = richTextBox1.Text.Substring(0, beforelast + 1);
}
else
{
richTextBox1.Text = "";
}
您未指定其他方案(即,字符串不包含&#34;;&#34;) 此代码删除从&#34;;&#34;开始的字符串。就在最后一次&#34;;&#34;到最后&#34;;&#34;。 它删除了最后一个分号和文本,然后找到新的最后一个&#34 ;;&#34;。最后删除文本&#34;;&#34;
答案 1 :(得分:1)
找到解决方案here:
RichTextBox1.Lines = RichTextBox1.Lines.Take(RichTextBox1.Lines.Length - 3).ToArray();
答案 2 :(得分:1)
对于那些在这些年后发现这个问题的人......
使用.Text属性或.Lines属性的解决方案最终会从现有文本中删除格式。而是使用这样的东西来保留格式:
var i = textBox.Text.LastIndexOf("\n");
textBox.SelectionStart = i;
textBox.SelectionLength = o.TextLength - i + 1;
textBox.SelectedText = "";
请注意,如果您的文本框处于ReadOnly模式,则无法修改SelectedText。在这种情况下,您需要像这样设置和重置ReadOnly:
textBox.ReadOnly = false;
textBox.SelectedText = "";
textBox.ReadOnly = true;
答案 3 :(得分:0)
我不确定富文本框是如何工作的,但是
input = {rich text box text}
int index = text.lastIndexOf(";");
if (index > 0)
{
input = input.Substring(0, index);
}
// put input back in text box
答案 4 :(得分:0)
int totalcharacters = yourrtb.Text.Trim().Length;
int totalLines = yourrtb.Lines.Length;
string lastLine = yourrtb.Lines[totalLines - 1];
int lastlinecharacters = lastLine.Trim().Length;
yourrtb.Text = yourrtb.Text.Substring(0, totalcharacters - lastlinecharacters);
答案 5 :(得分:0)
那怎么样?
string input = "your complete string; Containing two sentences";
List<string> sentences = s.Split(';').ToList();
//Delete the last sentence
sentences.Remove(sentences[sentences.Count - 1]);
string result = string.Join(" ", sentences.ToArray());