0

我正在阅读文本文件并尝试在与文本文件相同的布局中创建文本框。但是当我尝试根据我所知道的(我是新手)对其进行编码时,文本框变得混乱。例如在我的文本文件中,它显示:

你好,

E, , , , ,

Y, , , , ,

我希望根据上面的格式创建文本框,文本框将出现在字母所在的位置,然后空白也只是文本框,但我将它们的可见性设置为隐藏,但它不起作用我认为的工作。基本上我需要一个像文本文件一样的 5x5 布局文本框,那些有字母的文本框将显示为真,那些有空白的文本框将隐藏。

结果是这样的:

在此处输入图像描述

这是我尝试过的代码:

using (StreamReader reader = File.OpenText(Server.MapPath(@daoWordPuzzle.GetfileURL())))
{
    string line;
    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.Style["visibility"] = "hidden";
            }
            if (!string.IsNullOrEmpty(value))
            {
                tb.Text = "";
            }
            Panel1.Controls.Add(tb);
            i++;
        }
    }
}

我试图循环它,如果文本框达到 10,我会换行,但这对这里的代码没有帮助:

foreach (var value in lol)
{ 
    int i = 0;
    int k = 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.Style["visibility"] = "hidden";
    }
    if (!string.IsNullOrEmpty(value))
    {
        tb.Text = "";
    }
    if (k > 9)
    {
        Panel1.Controls.Add(new LiteralControl("<br/>"));
        Panel1.Controls.Add(tb);
        k = 0;
    }
    if (k < 9)
    {
        Panel1.Controls.Add(tb);
    }
                   
    k++;
    i++;
}
4

1 回答 1

0

您应该尝试添加、设置.Left.Top存储变量,

这是一种可行的方法。

这有效,经过测试,它有效。

int leftStart = 0;
int topStart = 0;

using (StreamReader reader = File.OpenText(@"C:\\hello.txt"))
{
    string line;
    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 = 40;
            tb.Height = 40;
            tb.Left = leftStart;
            tb.Top = topStart;
            tb.Visible = true;

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

            panel1.Controls.Add(tb);
            i++;
            leftStart = leftStart + 50;
        }
        topStart = topStart + 50;
        leftStart = 0;

    }
}

hello.txt 包含:

你好,

E,,,,,

Y,,,,,

于 2013-06-26T03:15:11.227 回答