2

我是 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];
    }

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

在此处输入图像描述

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

在此处输入图像描述

如果有人能指出我正确的方向,我将不胜感激。

提前致谢!

4

2 回答 2

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);
            }
        }
于 2013-08-01T07:41:12.653 回答
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 为列宽设置一些合理的默认值,而忘记自动调整大小。当您必须开始考虑向上/向下滚动条和屏幕旋转的空间时,这会变得特别痛苦。

于 2013-07-17T08:38:07.733 回答