使用Compact Framework的DataGrid中设定列宽 [英] Set columns width in a datagrid using Compact Framework

查看:170
本文介绍了使用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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆