c# textbox 删除上一行内容
5个回答
展开全部
可以把要删除行的内容设为空,如下删除第一行内容
private void button1_Click(object sender, EventArgs e)
{
int start = textBox1.GetFirstCharIndexFromLine(0);//第一行第一个字符的索引
int end = textBox1.GetFirstCharIndexFromLine(1);//第二行第一个字符的索引
textBox1.Select(start, end);//选中第一行
textBox1.SelectedText = "";//设置第一行的内容为空
}
private void button1_Click(object sender, EventArgs e)
{
int start = textBox1.GetFirstCharIndexFromLine(0);//第一行第一个字符的索引
int end = textBox1.GetFirstCharIndexFromLine(1);//第二行第一个字符的索引
textBox1.Select(start, end);//选中第一行
textBox1.SelectedText = "";//设置第一行的内容为空
}
展开全部
winform里面多行的话一般用richtextbox比较多功能.但是好像textbox和richtextbox都不能对行来操作,因为你的窗口变化的时候每行都是变化的,可能要实现你的功能要用到扩展控件(用户控件的一种),继承TextBox来做,自己写函数.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int record1,record2;
private void button1_Click(object sender, EventArgs e)
{
record1=textBox1.SelectionStart;
record3=textBox1.SelectionLength;
int index = CurrentLine()-1;
if (index >= 0)
{
record2 = textBox1.Lines[index].Length + 2;
int count = 0;
String[] lines = new String[textBox1.Lines.Length - 1];
for (int i = 0; i < textBox1.Lines.Length; i++)
{
if (i != index)
{
lines[count] = textBox1.Lines[i];
count++;
}
}
textBox1.Lines = lines;
}
else record2 = 0;
textBox1.Focus();
textBox1.SelectionStart = record1 - record2;
textBox1.SelectionLength = 0;
}
private int CurrentLine()
{
int position = textBox1.SelectionStart;
for (int i = 0; i < textBox1.Lines.Length; i++)
{
position -= textBox1.Lines[i].Length;
if (position == 0)
{
return i;
}
if (position >= 2 && position <= textBox1.Lines[i + 1].Length+2)
{
return i + 1;
}
position -= 2;
}
return textBox1.Lines.Length;
}
这个是把上一行彻底删除,包括回车符,CurrentLine函数用来获取当前光标在哪行,如果要删成空白,就把
if (i != index)
{
lines[count] = textBox1.Lines[i];
count++;
}
改成
if (i != index)
{
lines[count] = textBox1.Lines[i];
count++;
}
else
{
lines[count] = "";
count++;
}
就可以了
private void button1_Click(object sender, EventArgs e)
{
record1=textBox1.SelectionStart;
record3=textBox1.SelectionLength;
int index = CurrentLine()-1;
if (index >= 0)
{
record2 = textBox1.Lines[index].Length + 2;
int count = 0;
String[] lines = new String[textBox1.Lines.Length - 1];
for (int i = 0; i < textBox1.Lines.Length; i++)
{
if (i != index)
{
lines[count] = textBox1.Lines[i];
count++;
}
}
textBox1.Lines = lines;
}
else record2 = 0;
textBox1.Focus();
textBox1.SelectionStart = record1 - record2;
textBox1.SelectionLength = 0;
}
private int CurrentLine()
{
int position = textBox1.SelectionStart;
for (int i = 0; i < textBox1.Lines.Length; i++)
{
position -= textBox1.Lines[i].Length;
if (position == 0)
{
return i;
}
if (position >= 2 && position <= textBox1.Lines[i + 1].Length+2)
{
return i + 1;
}
position -= 2;
}
return textBox1.Lines.Length;
}
这个是把上一行彻底删除,包括回车符,CurrentLine函数用来获取当前光标在哪行,如果要删成空白,就把
if (i != index)
{
lines[count] = textBox1.Lines[i];
count++;
}
改成
if (i != index)
{
lines[count] = textBox1.Lines[i];
count++;
}
else
{
lines[count] = "";
count++;
}
就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
string str = textBox.Lines.GetValue(int index);//获得指定行内容
textBox.Text.Replace(str, "");//将获得内容替换成空
看看这样行不行!
textBox.Text.Replace(str, "");//将获得内容替换成空
看看这样行不行!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是js实现吗?是的话hi我发给你
参考资料: 如果您的回答是从其他地方引用,请表明出处
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询