我正在使用C#和Windows窗体中的开发和应用程序,我的目标是编译器与MySQL连接聊天,其中所有消息都保存在数据库中,然后保存在计算机中,TXT。
然后,我将创建一个动态标签,为TXT的每一行创建一个标签。
sql.sqlcmd("SELECT COUNT(*) FROM chat");
int count = int.Parse(sql.sqlcmd_answ);
foreach (string line in File.ReadLines("mac.txt"))
{
int i = 0;
int p = 62;
while (i < count)
{
Console.WriteLine(line);
Label lb = new Label();
lb.Text = line;
lb.Location = new Point(58, p);
p = p + 30;
panel1.Controls.Add(lb);
++i;
}
}
文件包含以下行:
1222 22222 Chat... fxckxd fxckxd fxck ffff cambio Chat...heya 22222 Xd Xd DDDD3EEEE DDDD
你可以看到 foreach 总是打印第一个值,我的TXT有15个值,我希望每个标签的TEXT都是TXT的每一行。 http://image.prntscr.com/image/a1d36d25ae3d4948b765082250d8cb3b.png
答案 0 :(得分:1)
这只是因为line
的值在内部while循环的整个生命周期中是相同的。我不明白为什么你甚至需要while循环。只需遍历文件中的值:
int p = 62;
foreach (string line in File.ReadLines("mac.txt"))
{
Console.WriteLine(line);
var lb = new Label()
{
Text = line,
Location = new Point(58, p)
};
panel1.Controls.Add(lb);
p = p + 30;
}