动态添加Button 不知道为什么报异常“NullReferenceException”

Rumia 2014-01-17 08:33:00

string[] src = new string[dt.Rows.Count];
string src1;
for (int i = 0; i < dt.Rows.Count; i++)
{
Button btn = new Button();

src1 = dt.Rows[i].ItemArray[0].ToString();
src[i] = src1;

btn.BackColor = Color.Fuchsia;
btn.Font = new Font("黑体", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
btn.ForeColor = Color.White;
btn.Location = new Point(0, 42 * i);
btn.Name = src1;
btn.Size = new Size(773, 42);
//btn.TabIndex = 0;
btn.Text = src1;
btn.UseVisualStyleBackColor = false;
btn.Click += new EventHandler(btn_Click);
panel1.Controls.Add(btn);//这里报异常:NullReferenceException: 未将对象引用设置到对象的实例
}

为什么呢? 找不到哪里出问题了啊
...全文
112 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Rumia 2014-01-17
  • 打赏
  • 举报
回复
引用 3 楼 bdmh 的回复:
你这句代码放到哪了,如果放到了InitializeComponent之前就有问题了,因为此时panel1还未被创建,为null
确实如此 看了下确实panel为null
bdmh 2014-01-17
  • 打赏
  • 举报
回复
你这句代码放到哪了,如果放到了InitializeComponent之前就有问题了,因为此时panel1还未被创建,为null
Rumia 2014-01-17
  • 打赏
  • 举报
回复
引用 1 楼 duanzi_peng 的回复:
在for循环里面价格断点,调试一下,我估计是这句:src1 = dt.Rows[i].ItemArray[0].ToString();出错了。
我断过点了 src1 = dt.Rows[i].ItemArray[0].ToString();没错 有正确的取到值 完全不知道为什么会NullReferenceException
exception92 2014-01-17
  • 打赏
  • 举报
回复
在for循环里面价格断点,调试一下,我估计是这句:src1 = dt.Rows[i].ItemArray[0].ToString();出错了。

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧