我有3個datagridviews,並且它們每個都有單獨的綁定源。但是,所有三個綁定源都從相同的數據表中獲取數據。DataGridView顯示設置爲不可見的列
bindingSource1.DataSource = mytable;
bindingSource2.DataSource = mytable;
bindingSource3.DataSource = mytable;
dataGridView1.DataSource = bindingSource1;
dataGridView2.DataSource = bindingSource2;
dataGridView3.DataSource = bindingSource3;
I控制用戶看到具有以下邏輯什麼:顯示在第一柵極10的第一列,在第二未來10,並且在第三未來10。
for (int i = 0; i < mytable.Columns.Count; i++)
{
dataGridView1.Columns[i].Visible = i < 10;
dataGridView2.Columns[i].Visible = (i >= 10 && i < 20);
dataGridView3.Columns[i].Visible = (i >= 20 && i < 30);
}
這工作正常,當我在數據表中有很多列。
問題如果我的數據表中少於10列,通常它們只應顯示在第一個datagridview中。這確實發生了,但是數據表的第一列第一列始終顯示在數據網格2和3中。我已遍歷循環查看條件是否有誤,並且我發現它是正確的。因此,我非常確定它一定是接下來的事件之一。我爲我的網格註冊了兩個事件,可能是cuplrits:RowPostPaint和CellPainting。我評論了我在這些事件中所做的一切,並仍然遇到這個問題。我也有一些其他的,如DataError,CellValueChanged(內部爲空),Scroll等,但我認爲它們是無關緊要的。
所以我想知道是否有另一個事件,我沒有註冊,這可能是由自己做到這一點。
謝謝,這是一個很好的解決方案。 – Iason