0

我有一个 DataGridView,其中有多行(15 行)。我想添加一些列值并使用foreachloop将它们存储在一个数组中。然后我想以另一种形式显示数组(带有多个字符串)。

目前我正在使用 stringBuilder 来存储字符串并显示,但它只显示其中的最后一个字符串存储。

 StringBuilder listOrderStatus = new StringBuilder();
    foreach (DataGridViewRow rw in grdData.Rows)
    { 

        string _idNumber = rw.Cells[6].Value.ToString();
        string _orderNo = rw.Cells[13].Value.ToString();

        double _ordTotalSpace = double.Parse(rw.Cells[17].Value.ToString());
        double _ordDoneSpace = double.Parse(rw.Cells[18].Value.ToString());
        double _ordRmainSpace = double.Parse(rw.Cells[19].Value.ToString());

        double _TotalSpace = getTotalArea();
        double _DoneSpace = getDoneArea();
        double _RmainSpace = getRmainArea();

        if(_ordTotalSpace ! = _TotalSpace){
            string value = "Invalid Order: Order number" + _orderNo + "ID No." + _idNumber;
            //I want to store this string in the array

            listOrderStatus.Append(value);
            listOrderStatus.AppendLine();
        }
        else{
            string value2 = "Valid Order: Order number" + _orderNo + "ID No." + _idNumber;
            //I want to store this string in the array
            listOrderStatus.Append(value2);
            listOrderStatus.AppendLine();
        }
    }

    string innerString = listOrderStatus.ToString();
    //This a new form to display strings in simple multiline-TextBox (Never mind, this is client request :P)
    var myForm = new Other.frmDisplayData();
    myForm._clist = innerString;
    myForm.Show();

谁能指导我。提前致谢

4

2 回答 2

0

您是否坚持使用StringBuilder?如果没有,您可以使用以下内容:

定义为 global 而不是StringBuilder

List<string>  listOrderStatus =  new List<string>();

接着

string value = "Invalid Order: Order number" + _orderNo + "ID No." + _idNumber;
listOrderStatus.Add(value);

然后

 myForm._clist = listOrderStatus;

笔记:

  1. 您必须将_clist定义为字符串列表,例如我编写的第一行代码。

  2. 在这种情况下,不需要使用新行。但是如果你想使用如下所示:

string value = "Invalid Order: Order number" + _orderNo + "ID No." + _idNumber;
value += System.Environment.NewLine;
  1. 您还可以使用字典定义:
Dictionary<int,string> Name = new Dictionary<int,string>();
于 2013-05-15T18:52:35.393 回答
0

_clist 如何用于分配给 multiLineTextBox.Text?

multilineTextBox.Multiline = true;
multilineTextBox.Scrollbars = Scrollbars.Both;
multilineTextBox.Text = _clist;

这至少是您需要的最低限度?您是否能够在 Debug 中看到 _clist 具有您想要显示的整个字符串?

于 2015-03-15T20:41:35.317 回答