c# wince dataGrid 单元格宽度的设定

winform datagridview 列宽随内容变化
2010-07-02 14:55

在使用vs2005时进行wince开发时,用Datagrid控件显示表格数据,当表格内容过多时,Datagrid控件单元格宽度并不足以用来完全显示表格中的数据内容,,只有自己每次去拉动分界线,来进行调整。当出现表格字段比较多时,这样做就显得很麻烦。

PDA本身屏幕就很小,即使只显示3-5列,拖动依旧很烦人,因此就有了实现自动调整列宽功能的想法。

先定义一个Sub过程AutoSizeCol,用来调整Datagrid中的列宽。

代码如下:

public void AutoSizeTable(DataGrid dgData)
        {
            int numCols = dgData.TableStyles[0].GridColumnStyles.Count;
            for (int i = 0; i < numCols; i++)
            {
                AutoSizeCol(dgData,i);
            }
        }

        private static void AutoSizeCol(DataGrid dgData, int colIndex)
        {
           
            int rowNums = ((DataTable)dgData.DataSource).Rows.Count;
            Byte[] myByte = System.Text.Encoding.Default.GetBytes(dgData.TableStyles["ROW"].GridColumnStyles

[colIndex].HeaderText);
            int textCount = myByte.Length;
            int tempCount = 0;
                
            for (int i = 0; i < rowNums; i++)
            {
              
                if (dgData[i, colIndex] != null)
                {
                    myByte = System.Text.Encoding.Default.GetBytes(dgData[i, colIndex].ToString().Trim());
                    tempCount = myByte.Length;

                    if (tempCount > textCount)
                    {
                        textCount = tempCount;
                    }
                }
            }
            dgData.TableStyles[0].GridColumnStyles[colIndex].Width = textCount * 7;
          
        }

 

转自http://dev.firnow.com/course/4_webprogram/asp.net/asp_netshl/20071122/87513.html

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值