我有一张表格:
DataGrid
SaveButton
CancelButton
将一个定位在另一个之下。当表单显示并调整大小时,我会调用以下方法:
private void resize(object sender, EventArgs e)
{
int totalRowHeight = thresholdsDataGridView.ColumnHeadersHeight;
foreach (DataGridViewRow row in thresholdsDataGridView.Rows)
totalRowHeight += row.Height;
thresholdsDataGridView.Height = totalRowHeight;
this.Height = totalRowHeight + closeButton.Height + saveChangesButton.Height;
}
这在调整大小时效果很好,但在显示时它没有添加足够的高度(底部按钮未显示)。有人可以对此有所了解吗?
所需结果的屏幕截图:
答案 0 :(得分:-1)
似乎你把每一个控制都放在了彼此之上。要使此设计更简单,请设置:
按钮的锚点:“Bottom,Left,Right”和DataGridView的锚点:设计师的“Top,Bottom,Left,Right”。
然后将此变量添加到表单的类“root:
”int originalHeight;
在表单的构造函数中设置“originalHeight”:
originalHeight = this.Height;
然后每次添加新行时,请运行:
private void resize(object sender, EventArgs e)
{
int rowsHeight = thresholdsDataGridView.Rows.GetRowsHeight(DataGridViewElementStates.Visible);
this.Height = originalHeight + rowsHeight;
}