C# 循环通过具有多个列类型的girdview列

C# 循环通过具有多个列类型的girdview列,c#,datagridview,C#,Datagridview,首先,我将告诉您一些背景知识,我需要创建一个具有动态列的网格,列计数将基于用户选择,在我的DataTable中,我向列名称添加数字以保持其名称的不同,然后我将其与我的girdview绑定 现在我需要重命名columns headerText并从列标题中删除计数器编号,当我尝试使用以下命令循环grid.columns时,我的网格还有一个未绑定的列,类型为Image: foreach(grdDistProcessing.Columns中的DataGridViewTextBoxColumn dgc)

首先,我将告诉您一些背景知识,我需要创建一个具有动态列的网格,列计数将基于用户选择,在我的DataTable中,我向列名称添加数字以保持其名称的不同,然后我将其与我的girdview绑定

现在我需要重命名columns headerText并从列标题中删除计数器编号,当我尝试使用以下命令循环grid.columns时,我的网格还有一个未绑定的列,类型为Image:

foreach(grdDistProcessing.Columns中的DataGridViewTextBoxColumn dgc)

这给了我错误 无效例外:

无法将“System.Windows.Forms.DataGridViewImageColumn”类型的对象强制转换为“System.Windows.Forms.DataGridViewTextBoxColumn”类型。

我也使用了DataColumn,但它给了我同样的错误,另一个线程说我们应该使用DataControlField,但VS没有识别它,这是ASP的东西吗?或者我错过了一个推荐人

请帮忙


Rgds,

如果你有var关键字(我认为是c#3及以上)


如果您可以使用var关键字(我认为是c#3及以上)


谢谢scartag,你的解决方案很有魅力,顺便说一下,我为这个问题探索了另一个解决方案,我可以使用一个简单的for循环

        `for (int i = 0; i < grdDistProcessing.Columns.Count; i++)
        {
            MessageBox.Show(grdDistProcessing.Columns[i].HeaderText);
        }`
`for(int i=0;i
谢谢scartag,你的解决方案很有魅力,顺便说一下,我为这个问题探索了另一个解决方案,我可以使用简单的for循环

        `for (int i = 0; i < grdDistProcessing.Columns.Count; i++)
        {
            MessageBox.Show(grdDistProcessing.Columns[i].HeaderText);
        }`
`for(int i=0;i
谢谢您的回答,但现在当我键入dgc时,它不会给我intellisense,并且我无法访问dataGrid columns标题text@alphaprolix我已经修改了我的答案,把它包括在内。。我确信您现在将获得所需的intellisense。谢谢您的回答,但现在当我键入dgc时,它不会给我intellisense,并且我无法访问dataGrid列标题text@alphaprolix我已经修改了我的答案,把它包括在内。。我相信你现在会得到所需的智能感知。