我正在从textfile中读取并尝试在与textfile相同的布局中创建文本框。但是当我尝试根据我所知道的来编码它时(我是新手),文本框变得混乱。 例如,在我的文本文件中,它显示为:
H,E,L,L,O,
E ,,,,,
Y ,,,,,
我希望根据上面的格式创建文本框,文本框将出现在字母所在的位置,然后空白也只是文本框,但我将其可见性设置为隐藏,但是它不起作用我想。基本上我需要一个像文本文件一样的5x5布局文本框,那些带字母的文本框会显示为true,带有空格的文本框会隐藏文本框。
事实证明是这样的:
这是我尝试过的代码:
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++;
}
答案 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,
电子,,,,,
ý,,,,,