首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么DataColumn.Caption不能工作?

为什么DataColumn.Caption不能工作?
EN

Stack Overflow用户
提问于 2013-01-10 21:16:50
回答 6查看 24K关注 0票数 18

我正在尝试创建一个DataTable并将其绑定到一个DataGridView。它可以工作,但我不能通过Caption属性设置列标题。它使用ColumnName ("City")来显示标题。MSDN

“您可以使用标题属性显示DataColumn的描述性或友好性名称。”

这是我的代码:

代码语言:javascript
复制
DataColumn dc = new DataColumn("City", typeof(string));
dc.Caption = "Город"; 

DataTable dt = new DataTable();
dt.Columns.Add(dc); 

DataRow row = dt.NewRow(); 
row["City"] = "Moscow";
dt.Rows.Add(row);

datagridview.DataSource = dt;
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2013-01-10 21:30:39

嗯,MSDN是对的。这就是Caption属性的用途。然而,这并不意味着控制制造商必须使用标题属性。在这种情况下,微软并没有这么做(尽管他们真的应该这么做)。不过,您可以将代码修改为:

代码语言:javascript
复制
///snip

dataGridView1.DataSource = dt;

foreach (DataGridViewColumn col in dataGridView1.Columns) {
  col.HeaderText = dt.Columns[col.HeaderText].Caption;
}
票数 31
EN

Stack Overflow用户

发布于 2013-01-10 21:28:15

我认为当绑定到DataTable时,DataGridView不使用标题属性。它只在绑定到DataSet时才能工作。

可以手动修改列标题,如下所示:

代码语言:javascript
复制
dataGridView.Columns[i].HeaderText = dt.Columns[i].Caption;
票数 5
EN

Stack Overflow用户

发布于 2013-01-10 21:29:08

你应该试试这个:

代码语言:javascript
复制
datagridView.Columns[0].HeaderText = "Title Goes Here.";

您可以对已添加的列数执行此操作。只有指数才会改变。

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

https://stackoverflow.com/questions/14267408

复制
相关文章

相似问题

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