我在我的winforms项目中使用了控件。我需要允许用户编辑这个控件:隐藏/显示列。但是,有些特定的列是用户不允许隐藏的。我查看了DataGridViewColumn的所有属性,似乎没有人能帮我。
如何使DataGridView列不可隐藏?
编辑:
以下是我正在尝试实现的全部要求:
用户可以右键单击DataGridView并获得新表单,列出所有带有复选框的列。因此,他可以通过选中相关复选框来决定隐藏哪一列和保留哪一列。我正在为不可隐藏的列寻找一个标志或属性,这样我就可以从列表(可编辑)列中删除它。
我不喜欢硬编码不可编辑的列,因为我必须在洞应用程序中做同样的思考。我有大约10 DataGridView。
发布于 2017-06-03 23:45:41
就像@Christopher说的那样,您可以设置一个列数组以隐藏列,另一个列设置为不允许隐藏列。您也有许多DataGridViews,我建议编写一些公共静态方法,然后:
public static bool set_never_hide_column(DataGridView dgv, int[] col)
{
try
{
foreach (DataGridViewColumn x in dgv.Columns)
{
if (col.Contains(dgv.Columns.IndexOf(x)))
{
x.Tag = true;
}
else
{
x.Tag = false;
}
}
return true;
}
catch
{
return false;
}
}
public static bool set_hide_column (DataGridView dgv, int[] col)
{
try
{
foreach (DataGridViewColumn x in dgv.Columns)
{
if (col.Contains(dgv.Columns.IndexOf(x)) && (bool)x.Tag == false)
{
x.Visible = false;
}
}
return true;
}
catch
{
return false;
}
}set_never_hide_column使用Tag属性设置列是否可隐藏。此代码将基于列索引工作。
因此,例如,如果我调用set_never_hide_column(your_dgv,新int[] {0})和set_hide_column(your_dgv,新int[] {0,2}),那么只会隐藏第三列。
https://stackoverflow.com/questions/44311507
复制相似问题