| |
| In diesem Forum haben Sie die Möglichkeit Kommentare, Fragen und Verbesserungsvorschläge zu den im vb@rchiv gelisteten Tipps und Workshops zu posten.
Hinweis: Ein neues Thema kann immer nur über die jeweilige Tipps & Tricks bzw. Workshop Seite eröffnet werden! | Fragen zu Tipps & Tricks und Workshops im vb@rchivTipp 2057: Zeilennummer im DataGridView-RowHeader anzeigen | | | Autor: danieljena | Tipp anzeigenDatum: 15.07.11 16:55 |
| Hallo,
wenn ich den erweiterten Code verwende und in meinem DGV mehrere Zeilen auf einmal löschen möchte, dann stehen hinterher die Zeilennummern mehrfach hintereinander.
Kann man das was umprogrammieren?
mfg
Daniel | |
Re: Zeilennummer im DataGridView-RowHeader anzeigen | | | Autor: thuring | Datum: 16.07.11 23:54 |
| Vielleicht könntest du mal mitteilen, wo und wie du die Funktion aufrufst.
Gruß-
Salzburger | |
Re: Zeilennummer im DataGridView-RowHeader anzeigen | | | Autor: danieljena | Datum: 17.07.11 11:46 |
| ich rufe die Funktion mit folgender Zeile im CellPainting-Ereignis des DGV´s auf
RownumberToHeader(sender, e, Color.Black)
grüße
danieljena | |
Re: Zeilennummer im DataGridView-RowHeader anzeigen | | | Autor: thuring | Datum: 18.07.11 10:58 |
| Hi,
das ist eigentlich OK.
Aber leider kann ich den Effekt, den du im ersten Thread beschreibst nicht nachvollziehen. Bei allen möglichen Löschungen bei mir wird danach die richtige Nummerierung angezeigt...
Gruß-
Salzburger | |
Re: Zeilennummer im DataGridView-RowHeader anzeigen | | | Autor: danieljena | Datum: 18.07.11 12:16 |
| mhm, vieleicht liegt es daran wie ich die zeilen lösche.
ich werde heute abend mal den lösch-code posten, komme jetzt leider nicht dazu.
mfg | |
Re: Zeilennummer im DataGridView-RowHeader anzeigen | | | Autor: danieljena | Datum: 20.07.11 20:18 |
| entschuldigt meine verspätung aber ich habe es vergessen gehabt.
hier mien code wie ich zeilen aus dem dgv löschen:
'überprüft ob in mehreren spalten narkiert wurde
col = frmKKMain.dgvZWK_V2_VP.SelectedCells(0).ColumnIndex
For i = frmKKMain.dgvZWK_V2_VP.GetCellCount( _
DataGridViewElementStates.Selected) - 1 To 0 Step -1
If col <> frmKKMain.dgvZWK_V2_VP.SelectedCells( _
i).ColumnIndex Then
MsgErr("Sie dürfen nur in einer Spalte auswählen")
Exit Sub
End If
Next i
'zählt die selektierten "Zeilen"
row = frmKKMain.dgvZWK_V2_VP.SelectedCells(0).RowIndex
For i = frmKKMain.dgvZWK_V2_VP.GetCellCount( _
DataGridViewElementStates.Selected) - 1 To 0 Step -1
If row <> frmKKMain.dgvZWK_V2_VP.SelectedCells( _
i).RowIndex Then
anzrow = anzrow + 1
End If
Next i
If MsgBox("Sie beabsichtigen " & anzrow.ToString & "" & _
"Vorperiodenproben zu löschen ???" _
& vbCrLf & "Dies können sie nicht Rückgängig machen!" _
, MsgBoxStyle.Critical + MsgBoxStyle.YesNo, _
"Warnung") = MsgBoxResult.No Then
'--- nein ---
Exit Sub
End If
Warten(StartStopAuswahl.W_START)
'--- ja ---
For i = frmKKMain.dgvZWK_V2_VP.GetCellCount( _
DataGridViewElementStates.Selected) - 1 To 0 Step -1
frmKKMain.dgvZWK_V2_VP.Rows.RemoveAt( _
frmKKMain.dgvZWK_V2_VP.SelectedCells(i).RowIndex)
Next i
Warten(StartStopAuswahl.W_STOP) mfg
danieljena | |
Zeilennummer im DataGridView-RowHeader anzeigen - auch einfacher möglich? | | | Autor: neckisch | Datum: 21.07.11 10:50 |
| Hallo VB Kollegen,
ich hatte die genannte Methode auch im Einsatz, bis mir auffiel, wie oft diese eigentlich aufgerufen wird. Es ist schon ein paar Tage her, deshalb bin ich mir nicht mehr ganz sicher, aber ich meine, die Methode wurde bei jeder visuellen Änderung des DGV aufgerufen, also Spalten verbreiten, scrollen, etc (bedingt durch das verknüpfte Event DataGridView1.CellPainting).
Dies hielt ich nicht für besonders performant und habe mir die Frage gestellt, ob man die Zeilennummern nicht auch einfacher anzeigen kann. Wahrscheinlich nicht, sonst hätte das auch mal jemand als Tipp behandelt.
Idee:
For Each dGVR As DataGridViewRow In dgv.Rows
dGVR.HeaderCell.Value = dGVR.Index.ToString
Next Leider funktioniert es (bei mir) nicht (mehr, ich finde den Fehler aber nicht). Während des debuggens sieht man, dass in die Header Cell die Zeilennummer eingetragen wird. Nur sehen tut man sie nicht.
Deshalb die Frage an die Experten: kann dies so überhaupt funktionieren?
Grüße,
neckisch | |
Re: Zeilennummer im DataGridView-RowHeader anzeigen - auch einfacher möglich? | | | Autor: thuring | Datum: 24.07.11 09:26 |
| Hi,
damit die Prozedur nicht so oft aufgerufen wird, brauchst du im CellPainting-Event eigentlich nur vor deren Aufruf zu prüfen, ob sich die Zeilenzahl des DGV geändert hat...
Gruß-
Salzburger | |
Re: Zeilennummer im DataGridView-RowHeader anzeigen | | | Autor: thuring | Datum: 24.07.11 09:37 |
| Hi,
also ich mache das Löschen etwas anders:
Im DGV kann man eine oder mehrere Zeilen selektieren, dann einfach Entf-Taste drücken.
Im UserDeletingRow-Event mache ich eine Sicherheitsabfrage mittels Prozedur 'secureDelete'.
Diese Prozedur enthält ähnliche Befehle wie deine:
Dim delFlag AS Boolean = False
...
If MessageBox.Show("Wollen Sie wirklich löschen?", "FRAGE", _
MessageBoxButtons.YesNo, MessageBoxIcon.Question, _
MessageBoxDefaultButton.Button2) = DialogResult.No Then
' Löschvorgang stoppen
e.Cancel = True
Else
' markierte Zeilen löschen
delFlag = True
MessageBox.Show("Daten werden gelöscht!", "INFO", MessageBoxButtons.OK, _
MessageBoxIcon.Information)
End If
... Im RowsRemoved-Event mache ich: delFlag = False
Grüße-
Salzburger | |
Re: Zeilennummer im DataGridView-RowHeader anzeigen - auch einfacher möglich? | | | Autor: neckisch | Datum: 25.07.11 08:29 |
| Guter Tipp, danke.
Mich würde aber noch interessieren, warum die von mir genannte Methode nicht funktioniert.
Weiß das zufällig jemand?
Gruß
neckisch | |
Re: Zeilennummer im DataGridView-RowHeader anzeigen | | | Autor: karl.kojote | Datum: 21.03.14 12:50 |
| Hallo,
auch wenn das Thema schon etwas älter ist hätte ich noch ein Problemchen:
Ich dachte damit wird auch das Dreieckssymbol übermalt. Leider nicht. Gibt's dafür auch eine Möglichkeit bzw. wie müsste der Code angepasst werden?
Gruß,
kk
PS: Irgendwann hatte ich mal ein DGV im virtuellen Mode, da würden die Zeilennummern ebenfalls eingeblendet, aber ich hab keine Ahnung mehr wo, wie und wann das war. Evtl. weiß da j ajemand was zu.
| |
Re: Zeilennummer im DataGridView-RowHeader anzeigen | | | Autor: thuring | Datum: 21.03.14 18:23 |
| Hallo,
dürfte eigentlich nicht gezeichnet werden, der Pfeil.
Könnte vielleicht am eingestellten CellBorderStyle liegen... (?) Mal mit Single probieren.
Salzburger | |
| Sie sind nicht angemeldet! Um einen neuen Beitrag schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
sevISDN 1.0
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats sevGraph (VB/VBA)
Grafische Auswertungen
Präsentieren Sie Ihre Daten mit wenig Aufwand in grafischer Form. sevGraph unterstützt hierbei Balken-, Linien- und Stapel-Diagramme (Stacked Bars), sowie 2D- und 3D-Tortendiagramme und arbeitet vollständig datenbankunabhängig! Weitere Infos
|