当所有列都不可见时,Datagridview 在设置数据源后显示第一列
Datagridview shows first column after setting Datasource when all columns are invisible
我有一个 DataGridView
,我将所有列的可见设置为 false。
现在我设置了 DataSource,Kaboom,你猜怎么着?第一列是可见的。为什么会这样?什么原因?
有没有办法阻止此默认行为或用其他操作覆盖它?
虽然 B.Yaylaci 的 suggested link 的答案会有所帮助,但我觉得它们对于维护您的代码的未来开发人员而言是模糊的 - 另外,如果您想使您的 ID 列可见怎么办有些点,但不希望它显示在列的最后?在更改 DataSource
时更正这些问题的一种简单方法是在 DataGridView.DataBindingComplete
事件中设置列可见性以获得更一致的行为。
例如,如果出于某种原因我希望 DataGridView
在绑定后完全显示为空*,直到我做出其他决定(某种逻辑或用户交互?),那么我可能会执行以下操作:
private void DataGridView1_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
{
foreach (DataGridViewColumn col in this.dataGridView1.Columns)
{
col.Visible = false;
}
this.dataGridView1.RowHeadersVisible = false;
this.dataGridView1.ScrollBars = ScrollBars.None;
}
*注意:如果稍后使列可见,则需要重置 RowHeadersVisible
和 ScrollBars
。
我有一个 DataGridView
,我将所有列的可见设置为 false。
现在我设置了 DataSource,Kaboom,你猜怎么着?第一列是可见的。为什么会这样?什么原因?
有没有办法阻止此默认行为或用其他操作覆盖它?
虽然 B.Yaylaci 的 suggested link 的答案会有所帮助,但我觉得它们对于维护您的代码的未来开发人员而言是模糊的 - 另外,如果您想使您的 ID 列可见怎么办有些点,但不希望它显示在列的最后?在更改 DataSource
时更正这些问题的一种简单方法是在 DataGridView.DataBindingComplete
事件中设置列可见性以获得更一致的行为。
例如,如果出于某种原因我希望 DataGridView
在绑定后完全显示为空*,直到我做出其他决定(某种逻辑或用户交互?),那么我可能会执行以下操作:
private void DataGridView1_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
{
foreach (DataGridViewColumn col in this.dataGridView1.Columns)
{
col.Visible = false;
}
this.dataGridView1.RowHeadersVisible = false;
this.dataGridView1.ScrollBars = ScrollBars.None;
}
*注意:如果稍后使列可见,则需要重置 RowHeadersVisible
和 ScrollBars
。