2014-04-07 43 views
0

我有一個CheckBox列的Datagrid。我需要從這個數據網格中選擇多行,並將SelectedRows獲取到另一個表單。我需要的是,當我檢查複選框時,所有選中的行必須仍然被選中(藍色高亮),直到我將它們傳遞給另一個表單。我現在能做到這一點,但只是一行,選擇一個與此代碼SelectRow與DataGridView中的複選框

private void button2_Click(object sender, EventArgs e) 
    {      
     DataTable table = new DataTable(); 
     foreach (DataGridViewColumn column in dataGridView1.Columns) 
     { 
      table.Columns.Add(column.Name, typeof(string)); //tipo cell?? 
     } 
     for (int i = 0; i < dataGridView1.SelectedRows.Count; i++) 
     { 
      table.Rows.Add(); 

      for (int j = 0; j < dataGridView1.Columns.Count; j++) 
      { 
       table.Rows[i][j] = dataGridView1.SelectedRows[i].Cells[j].Value; 
       fph.dataGridView1.DataSource = table; //DATAGRID DO FORM PH 
      } 
     } 
    } 

謝謝大家!

+0

你有MultiSelect嗎? – TaW

+0

您的應用程序中是否有DataGrid和DataGridView,或者只有DataGridView?如果是後一種情況,請避免將其縮短到DataGrid,因爲DataGrid是另一個(幾乎不贊成使用的).NET組件的名稱。 –

+0

@TaW - 是的,我擁有它! – Reznor13

回答

0

單擊一個項目選擇它並取消所有其他項目。 這是標準行爲。在GUI標準中,顯而易見的方法是讓用戶按控制,如果他們不想丟失當前的選擇,就像他們必須在系統中的任何其他位置一樣。

如果您不喜歡那樣,您將找到一些奇怪的技巧或在每個CellMouseDown上檢查這是否爲複選框列,然後存儲選定的行並在CellMouseUp上恢復選擇。 (或類似的東西,沒時間在這裏爲你測試這個..)

+0

我很理解,就像「檢查所有項目」,然後用戶取消選擇其他項目。我想這也是我會選擇的方式!謝謝TaW先生 – Reznor13