Wie kann die Auswahl in einem DataGridView deaktiviert werden?
Möchte ich meine DataGridView
nur um Dinge zu zeigen, und ich möchte, dass der Benutzer nicht in der Lage, markieren Sie eine beliebige Zeile, Feld-oder nichts von der DataGridView
.
Wie kann ich dies tun?
InformationsquelleAutor der Frage Mahdi Tahsildari | 2012-07-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich würde gehen mit dies:
Ich bin nicht einverstanden mit der Breite Behauptung aufstellen, dass keine
DataGridView
sollte nicht auswählbare. Einige UIs sind gebaut für Werkzeuge oder touchsreens, und ermöglicht eine Auswahl verleitet den Anwender zu denken, dass die Auswahl tatsächlich bekommen Sie irgendwo.Einstellung
ReadOnly = true
auf das Steuerelement hat keine Auswirkungen darauf, ob eine Zelle oder Zeile ausgewählt werden kann. Und es gibt visuelle und funktionale Nachteile zur EinstellungEnabled = false
.Weitere option ist, um die Kontrolle ausgewählten Farben werden genau das, was die nicht gewählten Farben sind, aber wenn Sie geschehen, werden die Manipulation der Hintergrundfarbe der Zelle, dann ist diese Methode bringt einige unangenehme Resultate.
InformationsquelleAutor der Antwort edhubbell
Können Sie eine transparente Hintergrundfarbe für die ausgewählten Zellen wie folgt:
InformationsquelleAutor der Antwort user4101525
Enabled
Eigenschaftfalse
oder
InformationsquelleAutor der Antwort Ramgy Borja
Ich behoben, indem das
Enabled
Eigenschaftfalse
.InformationsquelleAutor der Antwort Rick
Ich fand die Einstellung aller
AllowUser...
Eigenschaftenfalse
ReadOnly
zutrue
RowHeadersVisible
zufalse
ScollBars
zuNone
dann faking die Prävention von Auswahl besten funktioniert für mich. Nicht die EinstellungEnabled
zufalse
immer noch erlaubt dem Benutzer das kopieren der Daten aus dem Netz.Den folgenden code bereinigt das Aussehen, wenn Sie wollen ein einfaches raster anzeigen (vorausgesetzt, die Zeilen die gleiche Höhe):
InformationsquelleAutor der Antwort SharpC
Dieser arbeitete für mich wie ein Charme:
(wo row = DataGridView.NewRow(entsprechenden überladungen);)
InformationsquelleAutor der Antwort Paddy
Ich mochte user4101525 die Antwort am besten in der Theorie, aber es hat nicht wirklich funktioniert.
Die Auswahl ist nicht ein overlay, so dass Sie sehen, was ist unter der Kontrolle
Ramgy Borja ' s Antwort nicht mit der Tatsache auseinandersetzen, dass die Standard-Stil ist nicht wirklich eine Farbe ist nicht so ganz anwenden, es hilft nicht.
Dieser behandelt das Format Standard und funktioniert, wenn die Anwendung Ihre eigenen Farben (was kann das sein, was edhubbell bezieht als schlechten Ergebnissen)
InformationsquelleAutor der Antwort Bengineer
Verwenden Sie die
DataGridView.ReadOnly
EigenschaftDen code in der MSDN-Beispiel veranschaulicht die Verwendung dieser Eigenschaft in einem
DataGridView
Kontrolle soll in Erster Linie für die Anzeige. In diesem Beispiel wird das visuelle Erscheinungsbild des Steuerelements angepasst, mehrere Möglichkeiten und die Steuerung konfiguriert ist für eine begrenzte Interaktivität.Beachten Sie diese Einstellungen in der Beispiel-code:
InformationsquelleAutor der Antwort Angshuman Agarwal
müssen Sie erstellen eine benutzerdefinierte DataGridView
`
`
beachten Sie, dass Sie zuerst kompilieren Sie das Programm einmal mit der zusätzlichen Klasse, bevor Sie Sie verwenden können das neue Steuerelement.
dann gehen Sie auf Die .Designer.cs, und ändern Sie die alten DataGridView in die neue zimmerreserviereung, ohne das Sie Durcheinander bringen Sie den vorherigen code.
...
zur (jeweiligen)
InformationsquelleAutor der Antwort Jannik Svensson