首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使DataGridViewColumn不可隐藏

使DataGridViewColumn不可隐藏
EN

Stack Overflow用户
提问于 2017-06-01 15:21:15
回答 1查看 28关注 0票数 0

我在我的winforms项目中使用了控件。我需要允许用户编辑这个控件:隐藏/显示列。但是,有些特定的列是用户不允许隐藏的。我查看了DataGridViewColumn的所有属性,似乎没有人能帮我。

如何使DataGridView列不可隐藏?

编辑:

以下是我正在尝试实现的全部要求:

用户可以右键单击DataGridView并获得新表单,列出所有带有复选框的列。因此,他可以通过选中相关复选框来决定隐藏哪一列和保留哪一列。我正在为不可隐藏的列寻找一个标志或属性,这样我就可以从列表(可编辑)列中删除它。

我不喜欢硬编码不可编辑的列,因为我必须在洞应用程序中做同样的思考。我有大约10 DataGridView

EN

回答 1

Stack Overflow用户

发布于 2017-06-03 23:45:41

就像@Christopher说的那样,您可以设置一个列数组以隐藏列,另一个列设置为不允许隐藏列。您也有许多DataGridViews,我建议编写一些公共静态方法,然后:

代码语言:javascript
复制
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}),那么只会隐藏第三列。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44311507

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档