如何调整用“xy.Columns.Add”创建的列的宽度?

时间:2014-02-18 18:25:10

标签: c# datagridview width readxml

My Form的固定大小为1024x600(dataGridView的宽度为1022)。 当我尝试使用此代码读取XML时,每个Column都具有相同的宽度,而列10,11,12和13甚至没有显示,因为它们在外面。

private void btLoadXML_Click(object sender, EventArgs e)
    {
    DataTable dt = new DataTable("itemstable");

    dt.Columns.Add("Datum", typeof(System.String));
    dt.Columns.Add("1", typeof(System.String));
    dt.Columns.Add("2", typeof(System.String));
    dt.Columns.Add("3", typeof(System.String));
    dt.Columns.Add("4", typeof(System.String));
    dt.Columns.Add("5", typeof(System.String));
    dt.Columns.Add("6", typeof(System.String));
    dt.Columns.Add("7", typeof(System.String));
    dt.Columns.Add("8", typeof(System.String));
    dt.Columns.Add("9", typeof(System.String));
    dt.Columns.Add("10", typeof(System.String));
    dt.Columns.Add("11", typeof(System.String));
    dt.Columns.Add("12", typeof(System.String));
    dt.Columns.Add("13", typeof(System.String));

    //Read XML File And Display Data in GridView
    dt.ReadXml("items2.xml");
    dataGridView1.DataSource = dt;
    }

如何手动调整每列的宽度,以便一切适合?

3 个答案:

答案 0 :(得分:0)

试试这个:

dataGridView1.Columns[0].Width = 200;

答案 1 :(得分:0)

您应该在dataGridview中设置宽度,如下所示:

dataGridView1.Columns[index].Width = /*insert number here*/;

通常,我喜欢将dataTable和dataGridView分开使用前者进行数据操作,后者进行表格渲染。

答案 2 :(得分:0)

使用Grid.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);

对于自动创建的网格,唯一可以强制列开始正确宽度而不响应拥有控件中的事件的方法是:

public static void InitGrid(DataGridView Grid) {
    Grid.HandleCreated+=new System.EventHandler(DoResizeColumnsEvent);
}

static void DoResizeColumnsEvent(object sender,EventArgs e) {
            ((DataGridView)sender).AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);         
}