📅  最后修改于: 2023-12-03 15:21:52.739000             🧑  作者: Mango
在Infragistics Ultra WinGrid中,我们可以使用列选择器来选择显示在网格中的列。在某些情况下,我们需要隐藏一些列,但仍然想在列选择器中保留这些隐藏的列。下面是如何在列选择器选项中隐藏列的示例代码。
在网格的Load事件中,我们可以使用以下代码来选择应该被隐藏的列。
private void ultraGrid1_Load(object sender, EventArgs e)
{
// 隐藏名为"隐藏的列"的列
var column = ultraGrid1.DisplayLayout.Bands[0].Columns["隐藏的列"];
if (column != null)
{
column.Hidden = true;
}
}
以上代码使用ultraGrid1
的DisplayLayout.Bands
属性获取第一个位置的Band
。 然后,我们访问列集合中的“隐藏的列”列,并将其隐藏。
接下来,我们需要在我们的列选择器中启用这些隐藏的列。 为此,请使用以下代码:
private void ultraGrid1_InitializeColumnChooser(object sender, Infragistics.Win.UltraWinGrid.InitializeColumnChooserEventArgs e)
{
// 从已隐藏的列中构建列表
foreach (var column in ultraGrid1.DisplayLayout.Bands[0].Columns)
{
if (column.Hidden && !e.ColumnChooserControl.VisibleColumns.Contains(column))
{
e.ColumnChooserControl.VisibleColumns.Add(column);
}
}
}
我们使用InitializeColumnChooser
事件来从已隐藏的列中构建要在列选择器栏中显示的列的列表。 对于每个隐藏的列,如果其不在已显示的列列表中,则将其添加到VisibleColumns
中。
现在,我们已经将一些列隐藏,但这些列仍然可以在列选择器中选择。 对于某些需要数据输出到 Excel 文件并带有相同列的情况,这会很有用。 通过按照以上步骤,您可以轻松地筛选出需要在列选择器栏中隐藏的列并实现该功能。