Autor Beitrag
Trombone
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26
Erhaltene Danke: 1



BeitragVerfasst: Fr 02.09.11 14:16 
Moin,
gibt es eine Möglichkeit in einer DataGridView die erste Spalte für die auswahl zu sperren?
Ich meine damit nicht nur Read Only sondern komplett Select zu unterdrücken.

Gruß!
mats74
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 189
Erhaltene Danke: 26

Win 10
VS 2017/19, C++, C#
BeitragVerfasst: Mi 07.09.11 11:44 
Hallo Trombone

Ich habe in meinem Projekt das gleiche Problem.
Ich muss in einer DataGridView in gewissen Spalten die Select-Anweisung unterdrücken.
Aber ich habe bis jetzt keine Lösung gefunden, dies zu ermöglichen.

Hat da irgendjemand doch noch eine Idee?

Sehr professioneller Lösungsansatz:
Die Farbe der Selektion gleichsetzen wie DataGridView-Hintergrundfarbe (gehört definitiv in die Bastelabteilung) :P

Gruss
mats74
dark-destination1988
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 178
Erhaltene Danke: 21



BeitragVerfasst: Mi 07.09.11 12:20 
naja eventuell beim click ereignis testen ob die gewählte zeile der ersten entspricht und wenn ja --> selection aufheben
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: Mi 07.09.11 12:53 
Bevor man da sinnvoll was raten kann. Geht es nur um die Selektion einer Row und/oder auch um den Focus einer Row? Und dann die Rows die man Selekieren/Fokusieren in MultiSelect oder immer nur eine Row?
mats74
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 189
Erhaltene Danke: 26

Win 10
VS 2017/19, C++, C#
BeitragVerfasst: Mi 07.09.11 13:49 
Hallo zusammen

user profile icondark-destination1988 hat folgendes geschrieben Zum zitierten Posting springen:
naja eventuell beim click ereignis testen ob die gewählte zeile der ersten entspricht und wenn ja --> selection aufheben


... das ist eigentlich der richtige Ansatz.
Ich habe für mich nun eine Lösung gefunden, die ich akzeptieren kann.

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
private void dataGridView1_CellEnter(object sender, DataGridViewCellEventArgs e)
        {
            dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Selected = false;
            dataGridView1.Rows[e.RowIndex].Cells["DEINSPALTENNAME"].Selected = true;
        }


Mit diesem Event sind die Maus-Ereignisse und die Selektion mit der Tastatur abgefangen.
Die gewünschte (editierbare) Zelle erhält gleich nach der Selektion einer beliebigen Zelle den Fokus und das unschöne Aufflackern der fälschlicherweise selektierten Zelle entfällt.
Die beliebig selektierte Zelle wird farblich also zu keinem Zeitpunkt verändert.

Wenn man mehrere editierbare Zellen (Spalten) hat, kann man diese mit einer IF-Anweisung natürlich ansteuern und den User zur richtigen Eingabe zwingen.

Gruss
mats74