使用Compact Framework的DataGrid中设定列宽 [英] Set columns width in a datagrid using Compact Framework
本文介绍了使用Compact Framework的DataGrid中设定列宽的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想设置列的宽度在我的DataGrid中。我使用Compact Framework的2.0和C#
我试过,但它给了我一个出债券的错误消息:
的foreach(DataGridColumnStyle的vColumnStyle在dataGrid1.TableStyles [0] .GridColumnStyles)
{
vColumnStyle.Width = 100;
}
下面是填充我的DataGrid的数据表(代码只有失败的时候我尝试设置列宽):
无效FillData()
{
// 1
//打开连接
串conString =数据源= \\Program Files\\smartdeviceproject2\\repartocrack.sdf;
使用(的SqlCeConnection C =新的SqlCeConnection(conString))
{
c.Open();
// 2
//使用新的DataAdapter
(SqlCeDataAdapter一个=新SqlCeDataAdapter(
选择codbultocomp,农布雷,从国家体制envios INNER JOIN tiendas ON envios.codigodestino = tiendas .codigodestino,C))
{
// 3
//使用的DataAdapter来填补的DataTable
DataTable的T =新的DataTable();
a.Fill(T);
// 4
//数据呈现在屏幕上
的foreach(DataGridColumnStyle的vColumnStyle在dataGrid1.TableStyles [0] .GridColumnStyles)
{
vColumnStyle.Width = 100 ;
}
dataGrid1.DataSource = T;
}
}
}
解决方案
试试这个代码:
dataGrid1.TableStyles.Clear();
的DataGridTableStyle TABLESTYLE =新的DataGridTableStyle();
tableStyle.MappingName = t.TableName;
的foreach)(在t.Columns的DataColumn项)
{
DataGridTextBoxColumn tbcName =新DataGridTextBoxColumn(;
tbcName.Width = 100;
tbcName.MappingName = item.ColumnName;
tbcName.HeaderText = item.ColumnName;
tableStyle.GridColumnStyles.Add(tbcName);
}
dataGrid1.TableStyles.Add(TABLESTYLE);
I'm trying to set the width of the columns in my datagrid. I use Compact Framework 2.0 and C#
I tried this but it gives me an "out of bonds" error message:
foreach (DataGridColumnStyle vColumnStyle in dataGrid1.TableStyles[0].GridColumnStyles)
{
vColumnStyle.Width = 100;
}
Here is the code for filling my datagrid with the datatable (only fails when I try to set the columns width):
void FillData()
{
// 1
// Open connection
string conString = "Data Source=\\Program Files\\smartdeviceproject2\\repartocrack.sdf";
using (SqlCeConnection c = new SqlCeConnection(conString))
{
c.Open();
// 2
// Create new DataAdapter
using (SqlCeDataAdapter a = new SqlCeDataAdapter(
"SELECT codbultocomp, nombre, estado FROM envios INNER JOIN tiendas ON envios.codigodestino = tiendas.codigodestino", c))
{
// 3
// Use DataAdapter to fill DataTable
DataTable t = new DataTable();
a.Fill(t);
// 4
// Render data onto the screen
foreach (DataGridColumnStyle vColumnStyle in dataGrid1.TableStyles[0].GridColumnStyles)
{
vColumnStyle.Width = 100;
}
dataGrid1.DataSource = t;
}
}
}
解决方案
Try this code:
dataGrid1.TableStyles.Clear();
DataGridTableStyle tableStyle = new DataGridTableStyle();
tableStyle.MappingName = t.TableName;
foreach (DataColumn item in t.Columns)
{
DataGridTextBoxColumn tbcName = new DataGridTextBoxColumn();
tbcName.Width = 100;
tbcName.MappingName = item.ColumnName;
tbcName.HeaderText = item.ColumnName;
tableStyle.GridColumnStyles.Add(tbcName);
}
dataGrid1.TableStyles.Add(tableStyle);
这篇关于使用Compact Framework的DataGrid中设定列宽的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文