DataGrid列大小(Compact Framework)C#

时间:2013-07-11 09:47:42

标签: c# datagrid windows-mobile compact-framework windows-ce

我是DataGrids的新手。

我的代码:

private void populateGrid()
    {
        conn.Open();
        string query;
        query = "select company_id_no, company_name, last_update_datetime, username from company";
        OracleDataAdapter da = new OracleDataAdapter(query, conn);
        OracleDataSet ds = new OracleDataSet();
        da.Fill(ds);
        dgSku.DataSource = ds.Tables[0];
    }

这就是我在移动设备上的外观:

enter image description here

我希望它自动将列重新调整为100%,例如:

enter image description here

如果有人能指出我正确的方向,我真的很感激。

提前致谢!

2 个答案:

答案 0 :(得分:4)

        string query;
        query = "....SQL...";
        {
            conn.Open();

            using (OracleDataAdapter a = new OracleDataAdapter(query, conn))
            {
                DataTable t = new DataTable();
                a.Fill(t);

                dgSku.TableStyles.Clear();
                DataGridTableStyle tableStyle = new DataGridTableStyle();
                tableStyle.MappingName = t.TableName;

                foreach (DataColumn item in t.Columns)
                {
                    DataGridTextBoxColumn tbcName = new DataGridTextBoxColumn();
                    tbcName.Width = 80;
                    tbcName.MappingName = item.ColumnName;
                    tbcName.HeaderText = item.ColumnName;
                    tableStyle.GridColumnStyles.Add(tbcName);
                }
                dgSku.TableStyles.Add(tableStyle);
            }
        }

答案 1 :(得分:3)

我认为没有自动调整大小的属性。

本文介绍如何使用DataGridTableStyle调整列的宽度。

http://support.microsoft.com/kb/330610

如果将它与Graphics.MeasureString方法结合使用,您应该能够计算所需的列大小。

http://msdn.microsoft.com/en-us/library/system.drawing.graphics.measurestring(v=vs.71).aspx

就个人而言,我只想使用DataGridTableStyle在列宽上设置一些合理的默认值,而忘记自动调整大小。当您必须开始考虑上/下滚动条和屏幕旋转的空间时,它会变得特别痛苦。

相关问题