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

C#-从RichTextBox和TextBox中添加两个数字,c#,textbox,richtextbox,C#,Textbox,Richtextbox,我有一个用户可以输入的文本框。现在用户可以输入任何内容,但我想限制用户 我首先需要只允许用户输入负数或正数和/或十进制数(最多3位) 在RichTextBox中,数据如下所示: 227.905 227.905 242.210 -236.135 5.610 29.665 269.665 253.210 253.210 267.515 -210.830 30.915 54.970 294.970 using System; using System.Collections.Generic;

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

  • 我首先需要只允许用户输入负数或正数和/或十进制数(最多3位)
在RichTextBox中,数据如下所示:

227.905
227.905
242.210
-236.135
5.610
29.665
269.665
253.210
253.210
267.515
-210.830
30.915
54.970
294.970
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());
    }
}
因此,我尝试将文本框中的字符串值添加到RichTextBox中的每一行中

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

227.905
227.905
242.210
-236.135
5.610
29.665
269.665
253.210
253.210
267.515
-210.830
30.915
54.970
294.970
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());
    }
}
  • 有人知道怎么做吗

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

大概是这样的:

227.905
227.905
242.210
-236.135
5.610
29.665
269.665
253.210
253.210
267.515
-210.830
30.915
54.970
294.970
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());
    }
}
使用系统;
使用System.Collections.Generic;
使用系统文本;
公共类
{
公共静态void Main()
{
//您的收藏-使其成为类成员
List nums=新列表();
//填充数组
增补(227.905);
增补(227.905);
增补(242.210);
增加数值(-236.135);
//等等。
//人造用户数据输入-通过按钮点击处理程序收集并验证
双用户数=25.305;
//向数组中的项添加新值

for(int i=0;i如果RichTextBox.Text返回包含数据的字符串。(抱歉,无法测试)。

string[]Lines=richTextBox.Text.Split(新字符[]{'\r','\n'});
StringBuilder sb=新的StringBuilder();
double d=double.Parse(textBox1.Text);
对于(int i=0;i


它应该能用

试试这个

 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";

        }

sb.AppendLine(double.Parse(Lines[i])+d);
行上似乎有错误。它声明“最佳重载方法匹配”System.Text.Stringbuilder.AppendLine(string)“有一些无效参数”。虽然这种方法最终可能会起作用,但我不推荐使用解析方法,因为它可能会在用户交互中产生很多问题。您应该将数据存储在单独的数组中,并且永远不需要解析。@Quantic Programming:仍然是相同的错误。我相信这与
行[I]有关+d
?@Colton c'mon您无法理解
.ToString()
?您没有任何编程意识吗?
(double.Parse(Lines[i])+d)。ToString()
出现错误,指出:“输入字符串的格式不正确。”参考文本框您在文本框中输入的值是什么?在文本框中每次输入一个值如果RichTextBox和textbox不总是相同,我如何进行此操作?当两个文本框中的数据都可以更改时,这似乎是硬编码的。这是一个工作示例,您需要为自己的解决方案重写。如果富格文本框中的a可以更改,然后填充数组的部分需要进行解析,而不是硬编码。我建议使用其他示例中的解析片段,但在将数字输入数组之前添加验证。谢谢,我将重写它以正确解析数据。我查看了您的问题历史记录和通信nts和它似乎正在使用这个网站和一个代码编写服务。问题得到解答,代码片段被复制并粘贴到您的代码中,只需很少的调整。这是一个简单的假设,基于您下面的评论,要求对代码进行调整和错误修复,即使对于初学者来说也应该是微不足道的。请尝试更仔细地理解写出你自己的代码。你将学到更多,因此将成为一个更有价值的资源。