vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Erstellen von dynamischen Kontextmen?s - wann immer Sie sie brauchen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

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!

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fragen zu Tipps & Tricks und Workshops im vb@rchiv
Tipp 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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um einen neuen Beitrag schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel