Autor Beitrag
okrim
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 82

Win 7
C# (VS 2010 Express)
BeitragVerfasst: Do 10.04.14 13:35 
Hallo an alle,

hätte mal wieder eine Frage und zwar habe ich ein dataGridView wo kommplet ReadOnly true ist, möchte jetzt mit der Maus eine Zeile markieren, wenn ich nun auf den Button Bearbeiten gehe soll in der Markierten Reihe die Spalte "grid_stunden" ReadOnly false sein.

Ich habe folgendes ohne Probleme hinbekommen:
ausblenden C#-Quelltext
1:
dataGridView1.Rows[1].Cells["grid_stunden"].ReadOnly = false;					


nur habe ich so ja die zweite Reihe und ich möchte aber das er die Merkierte Reihe nimmt,
wenn ich es so schreibe
ausblenden C#-Quelltext
1:
dataGridView1.SelectedRows.Cells["grid_stunden"].ReadOnly = false;					


dann kommt wieder ein Fehler bei Cells, habe schon alles mögliche ausprobiert und auch schon gegooglet aber komm nicht drauch.
Würde mich freuen wenn mir von euch einer einen Tipp geben könnte.

Gruß Mirko
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Do 10.04.14 13:51 
Wie wars mit dataGridView1.CurrentRow? Oder gleich mit dataGridView1.CurrentCell?
okrim Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 82

Win 7
C# (VS 2010 Express)
BeitragVerfasst: Do 10.04.14 17:43 
Hallo Ralf,

danke für deine Antwort, geht es auch so das ich eine Zeile Markier und dann wenn ich auf bearbeiten gehe wird nur die Zelle "grid_stunden" in der Markierten Zeile ReadOnly false.

Mit folgenden Code:
ausblenden C#-Quelltext
1:
dataGridView1.CurrentCell.ReadOnly = false;					

ist es so das ich den Button Bearbeiten drück und dann die Zelle ReadOnly wir die ich danach anklicke.


Ich tu auf folgende weis eine ganze Zeile löschen
ausblenden C#-Quelltext
1:
2:
3:
4:
foreach (DataGridViewRow drv in dataGridView1.SelectedRows)
{
     dataGridView1.Rows.Remove(drv);
}

kann ich das vieleicht auch irgendwie auf diese Art machen?


Gruß Mirko
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Do 10.04.14 17:59 
Äh ... ich hab dich wahrscheinlich nicht verstanden rate aber mal trotzdem was du willst;
Wen du ein Bearbeitenmodus für die grid_stunden Spalte willst; Dann setzt alle Spalten des Grid auf ReadOnly (nicht das Grid selbst). Und lass den Bearbeiten Button das ReadOnly Attribut der grid_stunden Spalte ändern;

dataGridView1.Columns["grid_stunden"].ReadOnly = false// oder true

Wenn das Bearbeiten nach dem Verlassen der gerade in Bearbeitetung befindlichen Zelle sofort vorbei sein soll dann setze ReadOnly der Spalte im CellLeave des Grids wieder auf false;
okrim Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 82

Win 7
C# (VS 2010 Express)
BeitragVerfasst: Do 10.04.14 18:11 
ja so in der art soll es sein, nur soll die Spalte grid_stunden nur in der zuvor Selecktierten zeile ReadOnly = false sein.
okrim Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 82

Win 7
C# (VS 2010 Express)
BeitragVerfasst: Fr 11.04.14 08:58 
Hallo Ralf,

vielen Dank nochmal, hab es hin bekommen!!!

Gruß Mirko
okrim Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 82

Win 7
C# (VS 2010 Express)
BeitragVerfasst: Fr 11.04.14 22:57 
Misst das klappt doch nicht, mein Problem ist ich habe ein dataGridView mit drei Spalten, wenn ich eine Zeile Selektiere ist immer eine ganze Zeile Selektiert, also alle drei Zellen.

Jetzt möchte ich gerne das wenn ich eine Zeile Selektiere egal in welche Zelle ich Klicke das nur die dritte Zelle „grid_stunden“ ReadOnly = false ist.

Geht das überhaupt?

Wenn ich es mit
ausblenden C#-Quelltext
1:
dataGridView1.CurrentCell.ReadOnly = false;					

probiere, habe ich halt das Problem das wenn ich als Beispiel in die erste Zelle Klicke, dann ist die ganze Zelle Selektiert und wenn ich auf den Button Bearbeiten Klicke, dann ist die erste Zelle ReadOnly = false.

Gruß Mirko
okrim Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 82

Win 7
C# (VS 2010 Express)
BeitragVerfasst: Fr 11.04.14 23:12 
Jetzt so geht es glaube ich
ausblenden C#-Quelltext
1:
2:
            int zeile = dataGridView1.CurrentCell.RowIndex;
            dataGridView1.Rows[zeile].Cells["grid_stunden"].ReadOnly = false;


Danke nochmal an alle.