Ich habe eine Datagridview auf einem Formular mit einigen Daten. Die 1. Spalte enthält eine Schaltfläche zum Löschen der Zeile. Wie können wir diese Schaltfläche oder die gesamte Zeile basierend auf einer Bedingung deaktivieren, sodass die Zeile nicht gelöscht werden kann?Datagridview, Schaltfläche/Zeile deaktivieren
Antwort
Es gibt tatsächlich eine HowTo auf MSDN genau dies tun.
Bearbeiten: Weitere Vorschläge hinzugefügt.
Sie können die Schaltflächenspalte unsichtbar machen.
Oder wenn Sie nur das Löschen bestimmter Zeilen deaktivieren möchten, können Sie in jeder DataGridViewRow
s Tag
Eigenschaft den Wert true oder false eingeben. In Ihrer Ereignisbehandlungsroutine löschen Sie nur diejenigen, die auf false gesetzt sind. Sie könnten dies möglicherweise nur mit dem Ändern der Vordergrund- und Hintergrundfarben der Zelle kombinieren, um es deaktiviert aussehen zu lassen, diese Einfärbung könnte wahrscheinlich im CellFormatting
Event-Handler oder etwas getan werden, so dass Sie nicht durchlaufen und es einfärben müssen von Hand.
Ich habe das schon mal gesehen, aber es muss einen besseren Weg geben. – SoftwareGeek
@BhejaFry: Nun, eine Menge dieses Codes soll es richtig aussehen lassen. Wenn Ihnen das nicht egal ist, gibt es noch viele andere Möglichkeiten, ich werde meiner Antwort ein paar Vorschläge hinzufügen, da es dort leichter zu lesen ist. –
Würdest du nur daran denken, die Knopfzelle in ein normales leeres Textfeld zu verwandeln, das deaktiviert ist?
Dim cell As DataGridViewButtonCell = dgv.row(x).cell(y)
cell = New DataGridViewTextBoxCell()
cell.value = String.Empty
cell.ReadOnly = True
Es verliert seine grenzte „Button“ Aussehen und vermischt sich mit dem Rest der Zellen in (vorausgesetzt, Sie verwenden in erster Linie die Standard DataGridViewTextBoxCells).
Hier ist das Äquivalent in C#, plus es Grays das Feld, um es so aussehen, read-only:
var cell = dgv[column, row] = new DataGridViewTextBoxCell();
cell.Value = ""; // ignored if this column is databound
cell.ReadOnly = true;
cell.Style.BackColor = Color.FromKnownColor(KnownColor.Control);
Dies ist eine alte Post, aber ich möchte vorschlagen, was ich tue.
If conditionToDisable Then
Dim cell As New DataGridViewTextBoxCell 'Replace the ButtonCell for a TextCell'
cell.Value = valueForCell 'Set the value again'
grid.Rows(r).Cells(c) = cell 'Override the cell'
End If
Ich hoffe, das ist hilfreich.
- 1. Deaktivieren Bearbeitung in Datagridview
- 2. Wie die Auswahl Spalte in Datagridview deaktivieren
- 3. DataGridView, DataTable, SqlDataAdapter und SqlCommandBuilder - deaktivieren löscht
- 4. Deaktivieren der Auswahl von Zeilen in einer Datagridview
- 5. Die beste Möglichkeit zum Deaktivieren der Spaltenüberschrift in DataGridView
- 6. Deaktivieren der Sortierung beim Klicken auf die Spaltenüberschrift DataGridView
- 7. Deaktivieren von Null Bild in DataGridView Bildspalte, wenn von DataTable
- 8. C# Datagridview - Deaktivieren Sie AutoGenerateColumns beim Binden an XML-Datei?
- 9. Child DataGridView in einem DataGridView
- 10. Datagridview Anzeige
- 11. Datagridview aktualisieren
- 12. DataGridView Zeilenpositionierung
- 13. DataGridView-Spaltenvorlage
- 14. DataGridView Binding
- 15. DataGridView MaskedTextBoxColumn
- 16. DataGridView Skalierung
- 17. DataGridView Scrollverhalten
- 18. dataGridView Standardfehlerdialoghandle
- 19. Disable Zelle in einem Datagridview Hervorhebung
- 20. Deaktivieren des Ziehens aus einer bestimmten Zeile einer DataGridView in C# und Winforms?
- 21. Könnte ein DataGridView nur systemgenerierte Eingaben zulassen und manuelle Eingaben deaktivieren?
- 22. Deaktivieren Sie das Standardverhalten der Enter/Return-Taste in einer Datagridview
- 23. Deaktivieren einzelner Zellen Hervorhebung, aber vollständige Zeilenauswahl in DataGridView mit Vb.Net
- 24. Wie kann man die erste automatische Auswahl in einem VS-Datagridview deaktivieren?
- 25. Combobox datagridview Auswahl geändert Populationswert in datagridview andere Zelle
- 26. C# Zugriff auf Datagridview-Daten nach Datagridview-Name
- 27. Durchsuchen von DataGridView
- 28. DataGridView programmgesteuert sortieren
- 29. C# Datagridview Zeilenberechnung
- 30. DataGridView Element Doppelklick
mögliche Duplikate von [Wie deaktiviere ich eine Knopfzelle in einem WinForms DataGrid?] (Http://stackoverflow.com/questions/86096/how-do-i-disable-a-button-cell-in-a- -winforms-datagrid) –