例如我定义了5个文本框
TextBox3
TextBox4
TextBox5
TextBox6
TextBox7当动态得到一个货币值"415.16"后 ,我想把这一串数值按顺序分别存入这5个文本框中,如
TextBox3.Text=4
TextBox4.Text=1
TextBox5.Text=5
TextBox6.Text=1
TextBox7.Text=6又如动态得到一个货币值"9.45"后 ,把这一串数值按顺序分别存入这5个文本框中,如
TextBox3.Text=string.Empty
TextBox4.Text=string.Empty
TextBox5.Text=9
TextBox6.Text=4
TextBox7.Text=5请问如何用循环的方式把这一串数值顺序的存入到文本框中呢?(要注意这里还有一个".")
我是初学者正在研究发票套打,遇到点小问题,希望有人能指点一下!谢谢

解决方案 »

  1.   

    那你总共11个TextBox?
    还有,你的是winform还是webform?
      

  2.   

    输入的文字放到textBox1.Text中了 为了运算快一些
    位数我想用textBox1.Text.Length判断,然后执行循环,但不知道该如何循环把截取的数顺序放入设置好的文本框中!!!
      

  3.   

    是winform程序 ,是的,我放置了11个TextBox 用xml定位打印
    为了找到发票上的每一个坐标我就放置了11个textbox 现在基本上都搞定了就差这一块了 请路人帮忙解决一下!!!
      

  4.   

    一次截取一个字符,并且判断该字符是否是‘.’。不是的话可以加入到你需要的textbox内
      

  5.   

    恩,大小写转换我已经写好了已经精确到分和角了小数点应该带  用Split应该能控制住"."吧
      

  6.   

                string strNumber = "415.16";
                int j = 7;
                for (int i = strNumber.Length - 1; i >= 0; i--)
                {
                    String sub = strNumber[i].ToString();
                    if (sub == ".")
                        continue;
                    else
                    {
                        string str = "textBox" + j.ToString();
                        TextBox tb = (TextBox)(this.Controls[str]);
                        tb.Text = sub;
                        j--;
                    }
                }
            }
      

  7.   

    假设textBox1是亿位,textBox11是小数点第二位:void SetValueToTextBoxes(double d)
    {
        string str = (d * 100).ToString().PadLeft(11,'|');
        for(int i=0;i<11;i++)
        {
            TextBox tb = this.Controls["textBox" + (i + 1)] as TextBox;
            if(tb != null)
                tb.Text = str[i] == '|' ? string.Empty : str[i].ToString();
        }
    }
      

  8.   

    Ring_Pt为正解。倒着取,正着显示。要是非要在高位的textBox中输入"string.Empty"字符串的话(如果为空什么都不用改)只需在外层建立一个定长的字符组chars(初始值为非数字),for中为字符串反向赋值,循环显示chars[]内容既可(其中"."continue,如为初始非数字值就显示你要显示的字串"string.Empty")。
      

  9.   

     Ring_Pt方法不错
    string strNumber = "415.16"; 
                int j = 7; 
                for (int i = strNumber.Length - 1; i >= 0; i--) 
                { 
                    String sub = strNumber[i].ToString(); 
                    if (sub == ".") 
                        continue; 
                    else 
                    { 
                        string str = "textBox" + j.ToString(); 
                        TextBox tb = (TextBox)(this.Controls[str]); 
                        tb.Text = sub; 
                        j--; 
                    } 
                } 
            }
    但是到TextBox tb = (TextBox)(this.Controls[str]); 这一步tb的值怎么就为空了呢?有点不太理解
      

  10.   

    先×100。
    然后不停的%10 和除10,把所得的各位数存到一个数组中,读取下数组,获得第一个不为零的位(做个flag标记),然后循环下赋值<flag的复制为空
      

  11.   

    这套算法前面都正确,就是到了“TextBox tb = (TextBox)(this.Controls[str]); 
    ”时 tb的值就为空了 得不到我想要的textbox[j].text结果
      

  12.   

    這個我只是就你這個題目寫出來的 我把注釋寫一下 
                string strNumber = "415.16";    //這里是你要填入的字串 
                int j = 7;    //這里定義初始值為7,是說從textBox7開始填值 
                for (int i = strNumber.Length - 1; i >= 0; i--)    //從textBox7開始往前填 
                { 
                    String sub = strNumber[i].ToString();    //依次填入6,1,5,1,4(遇到小數點continue) 
                    if (sub == ".")    //遇到小數點continue 
                        continue; 
                    else    //如果不是小數點
                    { 
                        string str = "textBox" + j.ToString();    //先看要填入到那個textBox,從"textBox7"開始 
                        TextBox tb = (TextBox)(this.Controls[str]);    //這里根據textBox的name來抓到這個textBox 
                        tb.Text = sub; 
                        j--; 
                    } 
                } 
            }
      

  13.   

    TextBox tb = (TextBox)(this.Controls[str]);
    這個其實就是說知道textBox的name 可以通過這樣的方法來抓到這個textBox
    如果這個時候tb為空 那只能說明controls里沒有這個名字的textbox
    如果有需要 程序里可以判斷
    if(tb != null)