My Form 的固定大小为 1024x600(dataGridView 的宽度为 1022)。当我尝试使用此代码读取 XML 时,每个列都具有相同的宽度,并且甚至没有显示第 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;
}
如何手动调整每列的宽度,以便所有内容都适合?
试试这个:
dataGridView1.Columns[0].Width = 200;
您应该在 dataGridview 中设置它们的宽度,如下所示:
dataGridView1.Columns[index].Width = /*insert number here*/;
通常,我喜欢将 dataTable 和 dataGridView 分开,前者主要用于数据操作,后者用于表渲染。
使用 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);
}