2012-12-10 25 views
5

Mam DataGridView w Winform, dodałem do DataGrid kolumnę z wyboru przy użyciu kodu widziałem tutaj:DataGridView z wyboru z wartości domyślnej sprawdzone

DataGridViewCheckBoxColumn column = new DataGridViewCheckBoxColumn(); 
    { 
     column.HeaderText = "Export"; 
     column.Name = "Export"; 
     column.AutoSizeMode = 
      DataGridViewAutoSizeColumnMode.DisplayedCells; 
     column.FlatStyle = FlatStyle.Standard; 
     column.CellTemplate = new DataGridViewCheckBoxCell(false); 
     column.CellTemplate.Style.BackColor = Color.White; 
    } 

    gStudyTable.Columns.Insert(0, column); 

to działa, ale chcę pole wyboru do sprawdzenia domyślnie dodałem:

foreach (DataGridViewRow row in gStudyTable.Rows) 
    {     
     row.Cells[0].Value = true; 
    } 

, ale pole wyboru col jest wciąż niezaznaczone. Używam kolekcji jako moje źródło danych i zmieniam wartość col po dodaniu źródła danych.

+0

Możesz spróbować zmienić kolekcję źródła danych zamiast samej wartości komórki. Coś w rodzaju 'dataSourceCollection [0] .Export = true' etc ... –

+0

pole wyboru nie jest częścią mojego źródła danych – meirrav

+0

można ustawić wartość checkbox na wartość true, gdy zostanie zebrane dane datagrid DataBindingComplete: http: //social.msdn. microsoft.com/Forums/en/csharplanguage/thread/2c7fe077-095e-472f-9833-c0633eb7035f – Mate

Odpowiedz

9

Myślę, że nie ma możliwości ustawienia sprawdzonej wartości w deklaracji kolumny. Trzeba będzie do irerate wiersze sprawdzenie go po DataSource jest ustawiony (na przykład w DataBindingComplete zdarzenia):

for (int i = 0; i < dataGridView1.Rows.Count -1; i++) 
{ 
dataGridView1.Rows[i].Cells[0].Value = true; 
} 

Z nazwy kolumna:

for (int i = 0; i < dataGridView1.Rows.Count -1; i++) 
{ 
    dataGridView1.Rows[i].Cells["Export"].Value = true; 
} 
+0

To działa super, dziękuję – meirrav

+0

serdecznie zapraszamy :) –

+1

Dotyczy wszystkich wierszy oprócz ostatniego. Zmień pętlę for na: for (int i = 0; i dsmyrnaios

3

spróbować zrobić to tak:

foreach (DataGridViewRow row in dgv.Rows)  
{ 
    row.Cells[CheckBoxColumn.Name].Value = true;  
} 
0

Można użyć datatable i utworzyć kolumny w datagridview, a następnie dodać wiersze, pod warunkiem, że pierwsza wartość kolumny jako "T rue 'lub' False 'dla każdego rzędu.

spróbować

0

if ((Bool) this.dataGridView2.Rows [I] .Cells [0] .FormattedValue == true)

+1

Prawdopodobnie chcesz umieścić krótkie odpowiedzi w ten sposób jako komentarze w przyszłości. –

0

trakcie lub po obciążeniu wartość w siatce, na czeku wartość w siatce użyć tego kodu i ustawić właściwości kolumny siatki

foreach (DataGridViewRow row in dataGridView.Rows) 
{ 
    row.Cells[0].Value = 1; 
} 

enter image description here

-2

Łatwym sposobem jest wykorzystanie właściwości NewRowIndex jak pokazano poniżej:

dvgInvoiceItems.Rows[dvgInvoiceItems.NewRowIndex-1].Cells[5].Value = true; 
dvgInvoiceItems.Rows[dvgInvoiceItems.NewRowIndex-1].Cells[6].Value = true; 
Powiązane problemy