C# - 从RichTextBox和TextBox中添加两个数字

时间:2011-07-26 16:40:08

标签: c# textbox richtextbox

我有一个用户可以输入的文本框。现在用户可以输入任何内容,但我想限制用户。

  • 我首先需要允许来自用户的数字 负数或正数,和/或小数(最多3位数)

在RichTextBox中,数据如下所示:

227.905
227.905
242.210
-236.135
5.610
29.665
269.665

SO ,我要做的是将TextBox中的字符串值添加到RichTextBox中的每一行。

示例: 如果用户在 “25.305” 中输入TextBox,它会将该值添加到RichTextBox中的每个值,然后使用新值替换RichTextBox中的值使更新 RichTextBox的值如下所示:

253.210
253.210
267.515
-210.830
30.915
54.970
294.970
  • 有谁知道怎么做?

3 个答案:

答案 0 :(得分:1)

您应该创建一个单独的列表集合,而不是在丰富的编辑控件中维护您的数字数组。然后,当用户输入数据时,将输入的数字添加到集合中的每个条目,构建更新的字符串并将其设置为富文本数据。

这样的事情:

using System;
using System.Collections.Generic;
using System.Text;

public class SomeClass
{
    public static void Main()
    {
        // your collection - make this a class member
        List<double> nums = new List<double>();

        // populate array
        nums.Add(227.905);
        nums.Add(227.905);
        nums.Add(242.210);
        nums.Add(-236.135);
        // etc.

        // faux user data entry - collect it and validate it a button click handler
        double userNum = 25.305;

        // add new value to items in array
        for (int i=0; i<nums.Count; i++) nums[i] += userNum;

        // declare string builder for fast string concatenation
        StringBuilder sb = new StringBuilder();

        // build output string from nums array
        foreach (double d in nums)
            sb.Append(d.ToString() + System.Environment.NewLine);

        // writing to console here but you would do something like:
        //    _myRichEditControlInstance.Text = sb.ToString();
        Console.WriteLine(sb.ToString());
    }
}

答案 1 :(得分:1)

如果RichTextBox.Text返回包含数据的字符串。 (抱歉无法测试)。

string[] Lines = richTextBox.Text.Split(new char[] {'\r','\n'});
StringBuilder sb = new StringBuilder();
double d = double.Parse(textBox1.Text);
for(int i = 0; i < Lines.Lenght; ++i)
     sb.AppendLine((double.Parse(Lines[i]) + d).ToString());
richTextBox.Text = sb.ToString();



它应该工作

答案 2 :(得分:1)

试试这个

 string[] Values = richTextBox1.Text.Split(new char[]{'\r','\n'});
            richTextBox1.Clear();
            foreach (string Value in Values)
            {
                richTextBox1.Text += (Convert.ToDouble(Value) + Convert.ToDouble(textBox1.Text))+"\r\n";

        }