2016-06-21 4 views
0

Ich erstelle dynamisch Datagridview-Zeilen, kann aber nicht genau herausfinden, wie der color- und read-only-Status einer Zelle in dieser Zeile gesetzt wird, es sei denn, ich überstreiche die gesamte datagridview nach der Erstellung.DatGridView Row - Erstellen und Formatieren

Was ich tun möchte, ist so etwas wie die folgende (nicht gültigen Code):

DataGridViewRow cata = catView.Rows.Add(new Object[] { item.catName,false, mLocalVersion, mServerVersion }); 

cata.Cells[1].ReadOnly = true; 
+0

hmm ... sind Sie sicher, dass Sie das auf Zellenebene tun müssen? Was ist mit 'datagridview.Columns [1] .ReadOnly = true;'? – Pikoh

+0

Ja, es ist pro Zelle, die ich möglicherweise readonly setzen muss, nicht pro Spalte. Ich kann das erreichen, indem ich alle Zeilen durchlaufen habe, aber ich möchte es tun, wenn die Zeile erstellt wird. –

+0

Sehen Sie, wenn meine Antwort das tut, was Sie wollen – Pikoh

Antwort

0

Ich glaube nicht, Ihren Weg Reihen mit denen Sie Ihre DataGridView korrekt ist. Versuchen Sie diesen Code und sehen, ob es das tut, was Sie wollen:

DataGridViewRow cata = new DataGridViewRow(); 
cata.SetValues("item.catName", false, "mLocalVersion", "mServerVersion"); 
cata.Cells[1].ReadOnly = true; 
catView.Rows.Add(cata); 
+0

Hallo Pikoh, ich setze nicht lesen nur für die gesamte Zeile, nur die eine Zelle pro Zeile. –

+0

Sie haben Recht. Versuchen Sie 'cata.Cells [1] .ReadOnly = true;' – Pikoh

0

some cells[1] will be RO and others not

Sie die RowsAdded Ereignis verwenden können. Dies wird aufgerufen, wenn jede Zeile hinzugefügt wird, und Sie können bei Bedarf weitere Zellen auswerten.

private void dgv2_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e) 
{ 
    if (dgv2.Rows[e.RowIndex].Cells[1].Value.ToString() == "B") 
    { 
     dgv2.Rows[e.RowIndex].Cells[1].ReadOnly = true; 
    } 
} 

Wenn die Sache, die feststellt, dass eine Zelle RO ändert (es wird der Wert einer anderen Zelle sein könnte), sollten Sie auch die RO-Eigenschaft ändern, wenn die Änderung bestätigt und gespeichert.