C#按文本文件的顺序排列文本框

时间:2013-06-26 02:19:58

标签: c# textbox text-files panel line-breaks

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

  

H,E,L,L,O,

     

E ,,,,,

     

Y ,,,,,

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

事实证明是这样的:

enter image description here

这是我尝试过的代码:

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++;
}

1 个答案:

答案 0 :(得分: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包含:

  

H,E,L,L,O,

     

电子,,,,,

     

ý,,,,,