public delegate void dlgSetDataGridSource(DataTable pDt);
private void SetDataGridSource(DataTable pDt)
{
if (this.dataGrid1.InvokeRequired)
{
dlgSetDataGridSource dlg = new dlgSetDataGridSource(SetDataGridSource);
this.dataGrid1.Invoke(dlg, new object[] { pDt });
}
else
{
this.dataGrid1.DataSource = pDt;
if (pDt != null && pDt.Rows.Count > 0)
{
DataGridTableStyle dgdtblStyle = new DataGridTableStyle();
dgdtblStyle.MappingName = pDt.TableName;
dataGrid1.TableStyles.Add(dgdtblStyle);
GridColumnStylesCollection colStyle = dataGrid1.TableStyles[0].GridColumnStyles;
for (int i = 0; i < pDt.Columns.Count ; i++)
{
colStyle[i].Width = 30;
}
} }
}
运行,第一次没问题,第二次有个错误提示:this.dataGrid1.Invoke(dlg, new object[] { pDt });
提示如下:确保此方法的参数具有有效值,
如果您好使用的是一个集合,请确保索引小于该集合的大小。
private void SetDataGridSource(DataTable pDt)
{
if (this.dataGrid1.InvokeRequired)
{
dlgSetDataGridSource dlg = new dlgSetDataGridSource(SetDataGridSource);
this.dataGrid1.Invoke(dlg, new object[] { pDt });
}
else
{
this.dataGrid1.DataSource = pDt;
if (pDt != null && pDt.Rows.Count > 0)
{
DataGridTableStyle dgdtblStyle = new DataGridTableStyle();
dgdtblStyle.MappingName = pDt.TableName;
dataGrid1.TableStyles.Add(dgdtblStyle);
GridColumnStylesCollection colStyle = dataGrid1.TableStyles[0].GridColumnStyles;
for (int i = 0; i < pDt.Columns.Count ; i++)
{
colStyle[i].Width = 30;
}
} }
}
运行,第一次没问题,第二次有个错误提示:this.dataGrid1.Invoke(dlg, new object[] { pDt });
提示如下:确保此方法的参数具有有效值,
如果您好使用的是一个集合,请确保索引小于该集合的大小。
http://www.cnblogs.com/slyzly/articles/2121436.html