我有一个用户可以输入的文本框。现在用户可以输入任何内容,但我想限制用户。
在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
答案 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";
}