日期:2014-05-17  浏览次数:20882 次

初学者,很奇怪的问题,求大神抽时间看看!谢
需求:页面上有一个文本框,文本框左侧和右侧各有一个按钮,点击左侧按钮文本框中的文字向左循环滚动一次,点击右侧按钮文本框中的文字向右循环滚动一次。

    
(我只贴主要的部分):
//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());