如何解决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”一词,似乎对其他列的值产生了模糊的影响。
结果如下:
“ C”列和“Bögen”列的值为“Äpfel”。
为什么会发生这种情况,有什么简单的方法可以解决呢?
编辑:
我尝试了不同的更改,但结果却很难重现。即使是很小的变化也会导致不可预测的变化,我无法弄清楚是什么原因造成的。
但是,在某些情况下,当我调用fill函数时,gridview是否可见已经有所不同。由于我在TabControl中使用了它,所以它一直都不可见。 在某些情况下,它在调用之前就失败了,然后才能使其可见并随后起作用。
我最终删除了DataTable内容,并直接通过添加了值
dataGridView1.Rows.Add(values);
到目前为止,似乎可以解决问题
编辑2:
好像使用DataTable添加数据引起了一些问题。替换它解决了行标题的其他一些问题,对行进行排序时这些标题没有显示或消失
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。