C#DataGridView添加数据不适用于特殊字符列标题

问题描述

以下问题:
我正在尝试用值填充DataGridView

dataGridView1.Columns.Clear();
dataGridView1.AutoResizeRowHeadersWidth(DataGridViewRowHeadersWidthSizeMode.AutoSizetoAllHeaders);
dataGridView1.RowHeadersVisible = true;

//creating columns
List<string> keys = new List<string> { "Äpfel","C","Käse","Bögen","E" };
foreach (string key in keys)
{
    DataGridViewTextBoxColumn column = new DataGridViewTextBoxColumn();
    column.HeaderText = key;
    column.Name = key;
    column.DataPropertyName = key;
    column.sortMode = DataGridViewColumnSortMode.Automatic;
    column.ReadOnly = true;
    column.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
    dataGridView1.Columns.Add(column);
}

DataTable dt = new DataTable();
foreach (string key in keys)
    dt.Columns.Add(new DataColumn(key,typeof(int)));      // 2

//filling with data
int num = 1;
List<int> resTypes = Res.All;
for (int i = 0; i < 10; i++)
{
    object[] values = new object[keys.Count];
    for (int j = 0; j < keys.Count; j++)
        values[j] = num++;

    dt.Rows.Add(values);
}
this.dataGridView1.DataSource = dt;
this.dataGridView1.AllowUserToAddRows = false;

问题似乎出在“Äpfel”一词,似乎对其他列的值产生了模糊的影响。

结果如下:

enter image description here

“ C”列和“Bögen”列的值为“Äpfel”。
为什么会发生这种情况,有什么简单的方法可以解决呢?

编辑:

我尝试了不同的更改,但结果却很难重现。即使是很小的变化也会导致不可预测的变化,我无法弄清楚是什么原因造成的。

但是,在某些情况下,当我调用fill函数时,gridview是否可见已经有所不同。由于我在TabControl中使用了它,所以它一直都不可见。 在某些情况下,它在调用之前就失败了,然后才能使其可见并随后起作用。

我最终删除了DataTable内容,并直接通过添加了值

dataGridView1.Rows.Add(values); 

到目前为止,似乎可以解决问题

编辑2:

好像使用DataTable添加数据引起了一些问题。替换它解决了行标题的其他一些问题,对行进行排序时这些标题没有显示或消失

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)