在c#中使用foreach动态创建链接标签

时间:2013-07-12 06:34:03

标签: c# dynamic nullreferenceexception linklabel

我正在尝试使用foreach动态创建链接标签。我将每个linklabel的文本设置为一个字符串,该字符串存储在flatestgames字符串数组中,其链接存储在flatestlinks字符串数组中。 但它在flg [i] .Text = s行抛出一个空引用异常,尽管s未设置为null。 请帮帮我。 以下是代码段:

if (!(flatestgames == null || flatestgames.Length < 1))
        {
            i = 0;
            LinkLabel[] flg = new LinkLabel[10];
            foreach (string s in flatestgames)
            {
                flg[i].Text = s;
                flg[i].Links.Add(0, s.Length, flatestlinks[i]);
                Point p = new Point(43, 200 + 23 * i);
                flg[i].Location = p;
                flg[i].Visible = true;
                flg[i].Show();
                this.Controls.Add(flg[i]);
                i++;
            }
        }

2 个答案:

答案 0 :(得分:2)

在foreach循环中尝试flg[i] = new LinkLabel();

if (!(flatestgames == null || flatestgames.Length < 1))
        {
            i = 0;
            LinkLabel[] flg = new LinkLabel[10];
            foreach (string s in flatestgames)
            {
                flg[i] = new LinkLabel();
                flg[i].Text = s;
                flg[i].Links.Add(0, s.Length, flatestlinks[i]);
                Point p = new Point(43, 200 + 23 * i);
                flg[i].Location = p;
                flg[i].Visible = true;
                flg[i].Show();
                this.Controls.Add(flg[i]);
                i++;
            }
        }

答案 1 :(得分:0)

您确定flatestgames数组的长度小于10吗?你必须先检查一下并声明你的:

LinkLabel[] flg = new LinkLabel[10];

为:

LinkLabel[] flg = new LinkLabel[flatestgames.Length];

我认为你得到了这个例外,因为在foreach中你试图获得超过10个实体。

相关问题