当前位置:编程学习 > C#/ASP.NET >>

datagridview中数据更新、滚动和publish的问题

我用datagridview主要是想显示数据。这个datagridview与dataset的一个表绑定,还有两列是没有绑定的列。现在的基本过程是,
在某个后台线程backgroundworker中,不断的检测数据,一旦有数据过来,我的那个dataset的表会增加一行内容,没有绑定的列的内容,我通过CellFormating事件来填充,同时还要根据某列的值来设定每行的颜色。
同时,通过invoke,来让bandingsours进行reset。
问题:
1。在VS 2005里面调试的时候,基本上已经没有问题了,但是一旦publish出来,或者从debug文件夹、release文件夹选择其中的exe文件夹,肯定会在datagridview自己生成scoll的时候,程序不能动弹了。
2。我不知道怎么让datagridview最后一行显示出来,现在总是只能看见datagridview未滚动前的那几行,想要拉滚动条的话,就会程序死掉。如果在invoke bindingsource的同时,设定一下datagridview的什么firstDisplayedScrollingRowIndex,就会出错。

也不知道我这种更新数据源再更新datagridview的顺序是否符合datagridview的本身的用意。现在调试程序很费劲,郁闷死了。

谢谢! --------------------编程问答-------------------- 估计程序哪里有问题,没有代码,我好判断 --------------------编程问答-------------------- 你的程序出错可能是因为多线程的问题,不能在其它线程中访问窗体线程创建的控件,要解决,可以参考下面的代码使用Invoke来解决:

//定义一个委托
delegate void somedle();
//设置控件的方法
private void setDataGridView()
{
    //如果是在其它的线程操作,则使用this.Invoke来调用
if (this.InvokeRequired)
{
somedle _dle = new somedle(this.setDataGridView);
this.Invoke(_dle);
return;
}
this.dataGridView1.FirstDisplayedScrollingRowIndex = 10;
}
//操作的示例
private void button3_Click(object sender, EventArgs e)
{
this.setDataGridView();
}
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,