| |
VB.NET - Ein- und UmsteigerRowHeader-Spalte im DataGridView sortieren | | | Autor: Rainer | Datum: 07.09.16 11:54 |
| Hallo,
ich benutze ein DataGridview, das an keine Datenquelle gebunden ist, in dem ich in der RowHeader-Spalte eine Satznumerierung eingetragen habe. Ich möchte nun dem Nutzer die Möglichkeit bieten, nach der Sortierung in einer Datenspalte (Mausklick in Kopfzeile einer Datenspalte) wieder zu der Reihenfolge entsprechend der Numerierung in der RowHeader-Spalte zurückzukehren. Diese Spalte reagiert aber auf keine Mausklicks (außer der Satzmarkierung).
Kennt jemand eine Möglichkeit zur Sortierung des DataGrids nach dem Inhalt der RowHeader-Spalte?
In diesem Zusammenhang noch eine ergänzende Frage, die damit vielleicht im Zusammenhang steht:
Alle meine programmtechnischen Einstellungsversuche, die Breite mit der Eigenschaft ROWHEADERSWIDTH zu verändern oder das Verhalten mit der Eigenschaft ROWHEADERSWIDTHSIZEMODE zu steuern, sind wirkungslos.
Gruß, Rainer. | |
Re: RowHeader-Spalte im DataGridView sortieren | | | Autor: Manfred X | Datum: 07.09.16 13:16 |
| Hallo!
Einfacher Weg:
Trage die Rowheader-Werte zusätzlich in eine (unsichtbare) Datacolumn ein und
sortiere die Datensätze nach dieser Spalte (z.B. beim Maus-Click auf die
linke obere Zelle). | |
Re: RowHeader-Spalte im DataGridView sortieren | | | Autor: Rainer | Datum: 07.09.16 14:11 |
| Hallo Manfred X,
Dank für den Tipp. Ist aber keine sehr elegante Lösung. Eine andere gibt es nicht? Gibt es wenigstens ein Ereignis, daß einen Mausklick in das leere Titelelement der RowHeader-Spalte bearbeitet?
Gruß, Rainer. | |
Re: RowHeader-Spalte im DataGridView sortieren | | | Autor: Manfred X | Datum: 07.09.16 14:40 |
| Stichwort: Eleganz
In VB.Net/Framework ist die vorgesehene Gestaltungsweise
die Trennung der Benutzeroberfläche von den Ebenen der
Datenmanipulation und der Datenhaltung.
Daten werden nicht direkt in das Grid eingetragen, sondern
per Datenbindung in einer geeigneten Datenklasse verwaltet.
Sei 'dgv' ein DataGridView:
Private Sub dgv_CellClick(sender As Object, _
e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgv.CellClick
If e.RowIndex = -1 And e.ColumnIndex = -1 Then
'Click Links oben
End If
End Sub | |
Re: RowHeader-Spalte im DataGridView sortieren | | | Autor: effeff | Datum: 07.09.16 14:50 |
| Also... Wenn das DataGridView denn DataGridView1 heißt:
DataGridView1.RowHeaders.Width=200 setzt die Breite auf 200 Pixel. Und das funktioniert problemlos.
Hier ist ein kleines Beispielprogramm, welches auf einer Form ein DataGridView "DataGridView1" und einen Button "Button1" hat:
Public Class Form1
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) _
Handles MyBase.Load
Dim dt As New DataTable
With dt
.Columns.Add("Vorname")
.Columns.Add("Nachname")
.Rows.Add("Peter", "Zar")
.Rows.Add("Paul", "Breitner")
.Rows.Add("Karl", "Müller")
End With
DataGridView1.DataSource = dt
End Sub
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) _
Handles Button1.Click
DataGridView1.RowHeadersWidth = 200
End Sub
End Class EALA FREYA FRESENA | |
Re: RowHeader-Spalte im DataGridView sortieren | | | Autor: Manfred X | Datum: 07.09.16 15:09 |
| Wenn die "RowHeadersWidthSizeMode"-Eigenschaft auf einen der
Autosize-Werte der "DataGridViewRowHeadersWidthSizeMode"-Enumeration
festgelegt ist, "RowHeadersWidth" ignoriert. | |
Re: RowHeader-Spalte im DataGridView sortieren | | | Autor: effeff | Datum: 07.09.16 15:12 |
| Das sollte standardmäßig aber nicht der Fall sein.
EALA FREYA FRESENA | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
vb@rchiv CD Vol.6 vb@rchiv Vol.6
Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
Online-Update-Funktion Entwickler-Vollversionen u.v.m.Jetzt zugreifen Tipp des Monats sevAniGif (VB/VBA)
Anzeigen von animierten GIF-Dateien
Ab sofort lassen sich auch unter VB6 und VBA (Access ab Version 2000) animierte GIF-Grafiken anzeigen und abspielen, die entweder lokal auf dem System oder auf einem Webserver gespeichert sind. Weitere Infos
|
|
|
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
|
|