0

我的文本文件看起来像这样(10 x 10):

在此处输入图像描述

所以我想做的是,我想显示 100 个文本框,我使用用逗号分隔的字符串来检测要创建多少个文本框,假设为 100 个。但是当我尝试这样做时,它显示 110 个文本框,比平时多 10 个文本框。这里出了什么问题?

这是我的代码:

            using (StreamReader reader = File.OpenText(Server.MapPath(@daoWordPuzzle.GetfileURL())))
        {
            string line = reader.ReadLine();
            while ((line = reader.ReadLine()) != null)
            {
                //  Response.Write(line + " <br />"); // Read every line in text file.
                string[] lol = line.Split(new string[] { "," }, StringSplitOptions.None);

                foreach (var value in lol)
                {
                    int i = 0;

                    TextBox tb = new TextBox();
                    tb.MaxLength = (1);
                    tb.Width = Unit.Pixel(40);
                    tb.Height = Unit.Pixel(40);
                    tb.ID = i.ToString();

                    // Response.Write(value);
                    if (string.IsNullOrEmpty(value))
                    {
                        tb.Text = "";
                     //   tb.Style["visibility"] = "hidden";
                    }
                    if (!string.IsNullOrEmpty(value))
                    {
                        tb.Text = "";
                    }


                       Panel1.Controls.Add(tb);

                    i++;
                }

            }
        }
4

2 回答 2

2

它又创建了 10 行,因为您有 10 行以逗号结尾。假设您有一个字符串,例如:

var s = "A,B,C,"

拆分这将导致 4 个字符串,最后一个为空。现在重现 10 行,您将获得与您相同的行为。如果这是不受欢迎的行为,您需要更改逻辑以考虑以逗号结尾的行。

于 2013-06-26T03:55:29.710 回答
0

如果您不想错过第一行或您的文本文件,您的代码应该是:

string line;
while ((line = reader.ReadLine()) != null)
{
[...]
}

此外,如果您想要每行 10 个框,您的文本文件每行应该有 9 个逗号,但您的有 10 个。

于 2013-06-26T03:57:06.793 回答