我在Visual Studio中遇到了一个非常奇怪的问题。我在我的窗体上用10列创建了网格。
一切正常,直到我重新排序列 - 所有列都消失了!
我点击撤消,它只返回给我6列。
当我想添加4个缺失的列时,程序抛出错误:此列已存在(或类似的东西)。然后我必须获得最新版本(我之前签入)以获取所有列。当我在网格中更改任何内容时,每次都会发生相同的错误。我试图删除网格并制作新的 - 同样的错误。我甚至试图删除WF并制作新的错误。
知道为什么会这样吗?
知道如何重新排序代码中的列并绕过这个奇怪的错误吗?
答案 0 :(得分:3)
最好的方法是控制代码而不是你正在做的助手。 为此,请使用以下示例:
if (dataGridView1.DataSource != null)
{
dataGridView1.Columns["idColumn1"].HeaderText = "Text 1";
dataGridView1.Columns["idColumn1"].Width = 60;
dataGridView1.Columns["idColumn1"].Index = 0;
dataGridView1.Columns["idColumn2"].HeaderText = "Text 2";
dataGridView1.Columns["idColumn2"].Width = 60;
dataGridView1.Columns["idColumn2"].Index = 1;
dataGridView1.Columns["idColumn3"].HeaderText = "Text 3";
dataGridView1.Columns["idColumn3"].Width = 60;
dataGridView1.Columns["idColumn3"].Index = 2;
dataGridView1.Columns["idColumn4"].Visible= false;
dataGridView1.Columns["idColumn5"].Visible= false;
dataGridView1.Columns["idColumn6"].Visible= false;
}
答案 1 :(得分:0)
我知道主要问题没有解决,但是如果有人有同样的错误,你可以在这样的代码中重新排序你的列:
private void TransakcijaZaFakturisanje_Load(object sender, EventArgs e)
{
gridTransakcijaZaFakturisanje.Columns["SifraTransakcije"].DisplayIndex = 0;
gridTransakcijaZaFakturisanje.Columns["Opis"].DisplayIndex = 1;
gridTransakcijaZaFakturisanje.Columns["SifraKomitenta"].DisplayIndex = 2;
gridTransakcijaZaFakturisanje.Columns["IdUgovor"].DisplayIndex = 3;
gridTransakcijaZaFakturisanje.Columns["IdUsluga"].DisplayIndex = 4;
gridTransakcijaZaFakturisanje.Columns["VaziOd"].DisplayIndex = 5;
gridTransakcijaZaFakturisanje.Columns["VaziDo"].DisplayIndex = 6;
//and so on...
}
我会继续研究这个问题,如果我找到了有用的东西,我会在这里输入。谢谢大家的支持!