2015-06-24 117 views
1

多個datagridviews我最近發佈關於如何從7個datagridviews, 每個用數據填充2維排列的7行×5列的問題。 Enigmativity給我提供了一段代碼,真是棒極了,非常感謝。填充來自單個2維陣列

public string[,] myGridData = new string[50, 5]; 
//49 data rows, last row (50) contains version number 

var dgvs = new[] { dgv6, dgv5, dgv4, dgv3, dgv2, dgv1, dgv0, }; 

for (var i = 0; i < dgvs.Length; i++) 
{ 
    for (int rows = 0; rows < 7; rows++) 
    { 
    for (int col = 0; col < 5; col++) 
    { 
    myGridData[rows + i * 7, col] = dgvs[i].Rows[rows].Cells[col].Value.ToString(); 
    } 
    } 
} 

我現在需要一種方法來顛倒過程並從原始數組中填充7個datagridviews。

我知道如何填充從二維陣列中的單個datagridview的,但不知道如何填寫所有7個網格。 我一直在使用,填補1個格中的代碼是:提前

//Populate Single DataViewGrid 
var rowCount = myGridData.GetLength(0); 
var rowLength = myGridData.GetLength(1); 

dgv1.ColumnCount = 5; 

for (int rowIndex = 0; rowIndex < rowCount - 1; ++rowIndex) 
{ 
    var row = new DataGridViewRow(); 

    for (int columnIndex = 0; columnIndex < rowLength; ++columnIndex) 
    { 
     row.Cells.Add(new DataGridViewTextBoxCell() 
     { 
     Value = myGridData[rowIndex, columnIndex] 
     }); 
    } 

    dgv1.Rows.Add(row); 
} 

感謝。

回答

0

就像填充二維數組,你需要通過7個DataGridView控制迭代。將你的代碼嵌套到循環中,然後改變你的內循環迭代的距離。而不是迭代rowCount - 1,填充一個DataGridView所有49行,你只能迭代接下來的7行。通過在最外層循環之外移動rowIndex,當你瀏覽每個視圖時,它將「記住」下一個索引。

var rowCount = myGridData.GetLength(0); 
var rowLength = myGridData.GetLength(1); 
int rowIndex = 0; 

var dgvs = new[] { dgv6, dgv5, dgv4, dgv3, dgv2, dgv1, dgv0, }; 

for (int i = 0; i < dgvs.Length; i++) 
{ 
    var dgv = dgvs[i]; 
    dgv.ColumnCount = 5; 

    for (int taken = 0; taken < 7; ++taken, ++rowIndex) 
    { 
     var row = new DataGridViewRow(); 

     for (int columnIndex = 0; columnIndex < rowLength; ++columnIndex) 
     { 
      row.Cells.Add(new DataGridViewTextBoxCell() 
      { 
       Value = myGridData[rowIndex, columnIndex] 
      }); 
     } 

     dgv.Rows.Add(row); 
    } 
} 

如果它讓你感覺更好,你可以修改內環到:

for (int taken = 0; taken < 7 && rowIndex < rowCount - 1; ++taken, ++rowIndex) 

但說實話它仍然會執行相同,並創造了每一次迭代額外的邏輯檢查。

+0

謝謝OhBeWise,你的代碼似乎做的很好! – dkap