我正在读取XML数据库并将条目存储在dataSet中。 对于UI,我使用的是dataGridView。因此,我的所有数据库条目都将显示在dataGridView中。目前,如果数据库中有两个条目,则显示两个条目的网格,所有其他行显示为空白。 我想用dataGridView显示全屏网格。如果我在数据库中有两个条目,我sholuld看到两个条目和所有其他行/列与空单元格但网格。 datagridView的任何部分都不应为空。请帮助解决问题。 我尝试使用dataGridView的Dock,AutoSizeColumnsMode,AutoSizeRowsMode等属性,但无法实现此目的。
这是读取数据的代码。
private System.Windows.Forms.DataGridView dataGridView1;
DataSet ds = new DataSet();
DataTable dtAll = new DataTable();
XmlReader xmlFile;
xmlFile = XmlReader.Create("Filepath");
ds.ReadXml(xmlFile);
dtTable = ds.Tables[0].Copy();
dataGridView1.DataSource = ds.Tables["entry"];
答案 0 :(得分:0)
使用from,放置网格。 表格应该没有边框并且最大化。 这将全屏显示您的表单。
this.BorderStyle = BorderStyle.None;
this.WindowState = FormWindowState.Maximized;
答案 1 :(得分:0)
您可以检查网格一次显示的行数, 例如,如果它支持20行显示滚动而你只有5行,那么你必须在表ds.Tables [“entry”]中添加15行。
答案 2 :(得分:0)
通过Manoj Extreme取消建议,您可以使用虚拟行填充来源DataTable
以填充DataGridView
的高度。对于宽度,只需将AutoSizeColumnsMode
设置为Fill
,或者更具体地说,仅为包含最大数据的列设置AutoSizeMode
。例如:
DataTable dt = ds.Tables["entry"];
while (dt.Rows.Count * dataGridView1.RowTemplate.Height + dataGridView1.ColumnHeadersHeight < dataGridView1.Height)
{
dt.Rows.Add(string.Empty);
}
dataGridView1.DataSource = dt;
dataGridView1.Columns["TheBigDataColumnName"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
注意:此方法存在缺点。如果您允许用户更改行的高度,增加Form的高度或删除行,那么您将不得不执行类似的操作来修复生成的非填充空间。