0

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

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

2 回答 2

2

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

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++;
            }
        }
于 2013-07-12T06:38:26.843 回答
0

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

LinkLabel[] flg = new LinkLabel[10];

作为:

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

我认为您会遇到此异常,因为在 foreach 中,您尝试获得超过 10 个您声明的实体。

于 2013-07-12T06:37:09.777 回答