问题描述
以下问题:
我正在尝试用值填充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中使用了它,所以它一直都不可见。 在某些情况下,它在调用之前就失败了,然后才能使其可见并随后起作用。
dataGridView1.Rows.Add(values);
到目前为止,似乎可以解决问题
编辑2:
好像使用DataTable添加数据引起了一些问题。替换它解决了行标题的其他一些问题,对行进行排序时这些标题没有显示或消失
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)