Form_load事件中设置datagridview的内容但不显示

Daizy 2009-11-30 04:14:22
代码如下:
private void BindUpdateLog()
{
BFSourceDB bfSDB = new BFSourceDB();

DataTable dt = bfSDB.GetUpdateLogRecord(1, "", "", "");
this.dgvUpdatelog.AutoGenerateColumns = false;
this.dgvUpdatelog.DataSource = dt.DefaultView;
if (dt.Rows.Count > 0)
{
for (int i = 1; i <= dt.Rows.Count; i++)
{
dgvUpdatelog.Rows[i - 1].Cells["TRemark"].Value = i.ToString();
}
}
bfSDB.Dispose();
}

在Form_Load中调用这个函数

但运行后,指定的列并没有显示出来 dgvUpdatelog.Rows[i - 1].Cells["TRemark"].Value = i.ToString();这句代码所实现的内容

而且当我通过按键调用这个函数时,就能显示,而且显示正常。


各位高手有没有碰到过这种情况,这是什么原因造成的,应该怎么改啊?
...全文
201 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Daizy 2009-11-30
  • 打赏
  • 举报
回复
问题已找到其他方式解决。
我在调试时发现在离开Form_Load事件之前,一直能通过dgvUpdatelog.Rows[1].Cells["TRemark"].Value.ToString()取得dgvUpdatelog.Rows[i - 1].Cells["TRemark"].Value = i.ToString()设置的值,但在离开Form_Load后,dgvUpdatelog.Rows[1].Cells["TRemark"].Value就变为空,很奇怪。
我还发现Form_Load是在New frmXXXX()后,Show()前调用的,是不是问题出在这里。

最后我是将BindUpdateLog话在窗口的Shown事件中,就可以了。
谢谢各位了。
ErrorCode1987 2009-11-30
  • 打赏
  • 举报
回复
把你的datagridview刷新一下
dgvUpdatelog.Refresh()
BOOKOOK 2009-11-30
  • 打赏
  • 举报
回复
up
Daizy 2009-11-30
  • 打赏
  • 举报
回复
Form_Load是执行了的,因为DataGridView的其他从数据库中直接取数据的列都显示出了正常的数据
hhc123 2009-11-30
  • 打赏
  • 举报
回复
Form_Load中调用这个函数
有没有被执行就是这个问题啊 public Form()
{
InitializeComponent();
this.Load += new System.EventHandler(this.Form_Load);
}

111,119

社区成员

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

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

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