更改datagridview中的列名称

时间:2012-11-15 10:13:51

标签: c# datetime datagridview

我使用以下代码更改列名称,但遗憾的是它不会让我这样做。请帮我解决这个问题。

DateTime dt = DateTime.Now;
string s = dt.DayOfWeek.ToString();
for (int i = 0; i < 10; i++)
{
    dataGridView1.Columns.Add(string.Format("col{0}", i), s);
}
for (int i = 0; i < dataGridView1.Columns.Count; i++)
{
    int c = dataGridView1.CurrentCell.ColumnIndex;
    string str = dataGridView1.Columns[c].HeaderText;
    if (str == "Wednesday")
    {
        str = "fifth day of week";
    }
}

还有什么方法可以让我可以在特定的日期时间之后每周一整天。

任何帮助将不胜感激

3 个答案:

答案 0 :(得分:10)

您需要设置DataGridView.Column [index] .HeaderText:

DateTime dt = DateTime.Now;

string s = dt.DayOfWeek.ToString();
for (int i = 0; i < 10; i++)
{
    dataGridView1.Columns.Add(string.Format("col{0}", i), s);
}

for (int i = 0; i < dataGridView1.Columns.Count; i++)
{

   string str = dataGridView1.Columns[i].HeaderText;
   if (str == "Wednesday")
   {
       dataGridView1.Columns[i].HeaderText = "fifth day of week";
   }
}

答案 1 :(得分:4)

将此行添加到Datagridview DataBindingComplete事件处理程序

 this.dataGridView1.Columns["your database column name"].HeaderText = " preferred name";

答案 2 :(得分:2)

以下代码将在特定日期时间之后一周一天地获取所有日期,并将日期名称打印为列标题:

        DateTime dtStart = new DateTime(2012, 11, 1);
        DateTime dtEnd = new DateTime(2012, 11, 7);

        for (int i = 0; i < dtEnd.Subtract(dtStart).Days; i++)
        {
            TimeSpan counter = new TimeSpan(i, 0, 0, 0);

            dataGridView1.Columns.Add(string.Format("col{0}", i), (dtStart + counter).DayOfWeek.ToString());
        }