DataGridView - Zeile als nicht wählbar maskieren

18/11/2008 - 20:02 von Manfred Zirk | Report spam
Hallo Leute,

ich habe Zeilen in einem DataGridView, die eigentlich nur der Information
dienen (Überschriften).
Die enthalten keinen Wert, den ich bei einer Benutzerauswahl benötigen würde.
Es ist zwar kein Problem, festzustellen, ob der Benutzer den Focus auf eine
solche Zeile gesetzt hat (CurrentRow),
aber jetzt würde ich gerne verhindern, das diese Zeilen überhaupt den
Eingabefokus erhalten können.

Ist das möglich, und wenn ja wie?
Bei den Ereignissen hampele ich etwas herum, im Prizip
kann ich das EnterRow-Ereignis abfangen, aber es sieht nicht so aus, als ob
ich verhindern kann, das diese Reihe auch den Focus erhàlt. (kein e.cancel)
Wenn ich in den Wechselmeachanismus eingreife, erhalte ich sofort einen
Laufzeitfehler.
Das gleiche gilt für das LeaveRow-Ereignis.

Grüße

Manfred
 

Lesen sie die antworten

#1 Peter Götz
19/11/2008 - 08:58 | Warnen spam
Hallo Manfred,

ich habe Zeilen in einem DataGridView, die eigentlich nur
der Information dienen (Überschriften).
Die enthalten keinen Wert, den ich bei einer Benutzerauswahl
benötigen würde.



Was meinst Du mit "Benutzerauswahl"?

Es ist zwar kein Problem, festzustellen, ob der Benutzer den
Focus auf eine solche Zeile gesetzt hat (CurrentRow),
aber jetzt würde ich gerne verhindern, das diese Zeilen
überhaupt den Eingabefokus erhalten können.



Eingabefokus?
Heisst das, Du möchtest eine solche Zeile "ReadOnly" machen?


Ist das möglich, und wenn ja wie?



Aus Deiner Beschreibung wird nicht wirklich deutlich,
was Du eigentlich erreichen möchtest.

Bei den Ereignissen hampele ich etwas herum, im Prizip
kann ich das EnterRow-Ereignis abfangen, aber es
sieht nicht so aus, als ob ich verhindern kann, das
diese Reihe auch den Focus erhàlt. (kein e.cancel)
Wenn ich in den Wechselmeachanismus eingreife,
erhalte ich sofort einen Laufzeitfehler.



Im Ereignis _RowEnter kann nicht direkt von der akt.
Zeile in eine andere Zeile gewechselt werden.

Wenn Du soetwas machen willst, müsstest Du den
Wechsel z.B. zur nàchsten Zeile über einen Timer
entkoppeln.
Sehr benutzerfreundlich wàre das aber sicher nicht,
da es den Benutzer doch ziemlich stören würde,
wenn der Cursor in eine andere Zeile als die mit
der Maus angeklickte Zeile springen würde.
Ich denke, Du solltest diesbezüglich Dein Bedienkonzept
überdenken.

Gruß aus St.Georgen
Peter Götz
www.gssg.de (mit VB-Tipps u. Beispielprogrammen)

Ähnliche fragen