这是因为你从线程去操作datagridview的原因
解决方案 »
- 求一段简单的正则表达式。。。谢谢!
- 江湖救急.C#给asp通过url传参怎么办?在线等
- C# 如何识别一张图片中 规则的文字
- 如何激活WebBrowser中打开的某个页面的javascript中的一个function
- c#中委派到底有哪些好处?
- 怎么获取EXCEL表格中有数据的行数???急。。,谢谢
- 象这样的滚动条翻页是怎么实现的,是否是一次性读取所有数据
- 菜鸟请教:如何判断一个数据表中的记录数为空?
- 求教:我想做一个小软件来实现修改注册表的功能,有什么好一点的书可供参考?
- 如何让VS.NET2003与VS.NET2002共存??
- winform:控件如何在非聚焦状况下删除
- 一个关于DataTable的问题
{
if (InvokeRequired)
{
BeginInvoke(new Action<List<T>>(RefUI),list);
}
else
{
dataContainer.RowCount = list.Count; dataContainer.Refresh(); }
}
//虚模式数据绑定事件
private void dataContainer_CellValueNeeded(object sender, DataGridViewCellValueEventArgs e)
{
if (list != null && list.Count > 0 && list.Count > e.RowIndex)
{
T t = list[e.RowIndex];
//绑定
}
}
private void fuc()
{
char[] tmpValue = "1,2,3,4,5,6,7,8,9,10".ToCharArray();
string[] strs = (new string(tmpValue)).Split(','); DataTable dt = new DataTable("Data");
DataRow dr; dr = dt.NewRow();
for (int j = 0; j < strs.Length; j++)
{
dt.Columns.Add(new DataColumn(((char)('A' + j)).ToString(), typeof(double)));
dr[j] = strs[j];
}
dt.Rows.Add(dr); lock(dt)
{
this.BeginInvoke(new Action(()=>dataGridView1.DataSource = dt));
}
}注:红色部分的Action貌似需要3.x的framework才有的
一段痛苦的经历~~解决方法如下:
public class DataGridViewPlus : DataGridView {
{
try {
base.OnPaint( e );
}
catch {
Invalidate();
}
}
}
参考:
(1) http://wenku.baidu.com/view/a3a7ed0d79563c1ec5da7126.html
(2) http://social.msdn.microsoft.com/Forums/windows/en-US/fdd94896-80e9-4e91-9ed5-0348bf2633a9/datagridview-red-x?forum=winforms