初学者,很奇怪的问题,求大神抽时间看看!谢
需求:页面上有一个文本框,文本框左侧和右侧各有一个按钮,点击左侧按钮文本框中的文字向左循环滚动一次,点击右侧按钮文本框中的文字向右循环滚动一次。
(我只贴主要的部分):
//char[] text = textBox1.Text.ToArray(); //获取textBox1中的信息,并转换成字符数组.
//char first = text[0]; //存储第一个字符.
//for (int i = 0; i < text.Length - 1; i++)
//{
// text[i] = text[i + 1]; //逐个往前移.
//}
//text[text.Length - 1] = first; //将字符数组最前一个的字符放到最后.
//string result = text.ToString();
//textBox1.Text = result;
string gets = textBox1.Text; //获取textBox1的string信息.
char first = gets[0]; //first存储第一个字符.
string remain = gets.Substring(1); //提取除了第一个字符外剩下的字符串为textBox1的子字符串.
textBox1.Text = remain + first; //将原先第一个字符追加到字符串最后.
}
这是个图:
请问:
我开始没有想到用“不注释”的代码。
也就是说开始的时候我用“//”注释的代码(其实我知道我的做法有点笨)。
但是我还是不知道为什么我的不能运行?
运行的结果是:
------解决方案--------------------remain + first
=>
remain + first.ToString()
------解决方案--------------------定义的字符数组text,如果想转化为字符串,是不能用ToString()达到效果的。
string result = text.ToString();这句话应该改为:
string result = new string(text);
------解决方案--------------------//string result = text.ToString();
改为:
string result = string.Join("", text);
char[] text = textBox1.Text.ToArray();
text.ToString();得到的是当前对象的类型。------解决方案--------------------text.ToString(); 数组类型
------解决方案--------------------懒得看你的代码
无非就是
textBox1.Text = new string(textBox1.Text.Skip(1).Concat(textBox1.Text.Take(1)).ToArray());
和
textBox1.Text = new string(textBox1.Text.Skip(textBox1.Text.Length - 1).Concat(textBox1.Text.Take(textBox1.Text.Length - 1)).ToArray());