迭代 DataGridView 的列并改变列标题。

3

如何动态地重命名datagridview的列标题?

直到现在,我使用了以下代码:

dataGridView1.Columns[0].HeaderText = "my_title";

问题在于Columns[0]可能随时间改变。。
我如何遍历所有列标题并执行以下操作
if (Column.HeaderText=="customer_id") {Column.HeaderText="my_title"} ?

请查看此帖子:https://dev59.com/7nVC5IYBdhLWcg3w-mZO - Amir Ismail
其实在我提问之前,我看过那篇帖子了,但是我没有理解出结论来。也就是说,这个实现不可能吗? - BornToCode
2个回答

9

只需使用 foreach 遍历所有列:

foreach(DataGridViewColumn column in dataGridView1.Columns)
{
    if (column.HeaderText=="customer_id") { column.HeaderText="my_title" }
}

当然,这只会改变一个列的标题文本。如果您想为多个列设置自定义标题文本,可以使用switch而不是if

它不能编译?我收到一个错误:“对象”不包含“HeaderText”的定义。 - BornToCode
1
是的,我的错误。在foreach中不能使用var。现在它已经编译并按预期工作。 - Franky
谢谢!这个可行。我怎么能“猜到”我应该在foreach中写“DataGridViewColumn”呢?智能感知显示dataGridView1.Columns返回“DataGridViewColumnCollection”? - BornToCode
1
使用索引器 dataGridView.Columns[0] 告诉您在枚举时获取的对象类型。 - Franky
@BornToCode:如果您不确定使用了哪种类型,查看MSDN始终是一个很好的起点 :) - basti

-1
foreach (DataGridViewColumn column in dataGridView1.Columns)
{
    if (column.HeaderText == "customer_id")
    {
        column.HeaderText = "my_title"
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接