| |

VB.NET - FortgeschritteneRe: Listview Zeile uns Spalte nach dem klicken ermitteln | |  | Autor: Flatty | Datum: 16.03.06 10:40 |
|
Hi Gerhard,
ich glaub ich hab Dir alles zusammenkopiert was Du benötigst und hoffe, dass ich nichts vergessen habe,
Also: Als erstes erstellst Du eine neue Klasse, die vom Listview erbt und als Variable die arrLocX_Col (Abkürzung von Array Location der X-Werte der Columns) definiert und eine Function zur Verfügung stelt, die Dir dieses Array erstellt. Dann brauchst Du auf Modulebene eine Structure, welche Dir die Werte aufnehmen kann. Evtl. kannst Du die ja auf colNr beschränken, die anderen zwei Werte hab ich gebraucht, um eine Combobox an der ausgewählten Stelle anzuzeigen.
Die Function GetItemDim liefert Dir mit dem Übergabeparameter X und dem array die Spaltennummer etc. vom angeklickten Feld.
Auf Formularebene erstellst Du jetzt das Listview und füllst es mit Spalten. Dann schreibst Du die Werte in das Array.
Nun brauchst Du nur noch auf das MouseUp-Ereignis des Listviews zu reagieren und rausfinden, welche Spalte angeklickt wurde.
Bei Fragen melde Dich einfach.
Viel Spaß
Flatty
'############# Geerbtes Listview ###################
public class ListviewArbeitsstunden
Inherits Listview
Friend arrLocX_Col() As Int16
Friend Function arrLocX_Col_Füllen As Int16()
Dim arrLocXColums(8) As Int16
Dim vonLinks As Int16
Dim zl As Int16
For zl = 0 To Me.Columns.Count - 1
arrLocXColums(zl) = vonLinks
vonLinks += Me.Columns(zl).Width
Next
arrLocXColums(zl) = vonLinks
ReDim Preserve arrLocXColums(zl)
Return arrLocXColums
End Function
end class
'############# Auf Modulebene ###################
Friend Structure strItemDim
Dim colNr As Int16
Dim colX As Int16
Dim colWidth As Int16
End Structure
Friend Function GetItemDim(ByVal x As Int16, ByVal _arrLocXCol As Int16()) As strItemDim
Dim _IS As strItemDim
For zl As Int16 = 0 To _arrLocXCol.GetUpperBound(0) - 1
If x >= _arrLocXCol(zl) And x < _arrLocXCol(zl + 1) Then
_IS.colNr = zl
_IS.colX = _arrLocXCol(zl)
_IS.colWidth = _arrLocXCol(zl + 1) - _arrLocXCol(zl)
Return _IS
End If
Next
End Function
'############# Auf Formularebene: #################
Private withEvents livArbeitsstunden as new ListviewArbeitsstunden
Private lvItem as Listviewitem 'das ist der aktuell ausgewählte Item
sub InitializeListview 'Auf Formularebene
With ListviewArbeitsstunden
.Columns.Add("Name", 200, HorizontalAlignment.Left)
.Columns.Add("Mo", 50, HorizontalAlignment.Center)
.Columns.Add("Di", 50, HorizontalAlignment.Center)
.Columns.Add("Mi", 50, HorizontalAlignment.Center)
.Columns.Add("Do", 50, HorizontalAlignment.Center)
.Columns.Add("Fr", 50, HorizontalAlignment.Center)
.Columns.Add("Sa", 50, HorizontalAlignment.Center)
.Columns.Add("So", 50, HorizontalAlignment.Center)
.arrLocX_Col = .arrLocX_Col_Füllen()
End With
end sub
Private Sub livArbeitsstunden_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles livArbeitsstunden.MouseUp
Dim DasListview as ListviewArbeitsstunden = ctype(sender,ListviewArbeitsstunden)
lvItem = DasListview.GetItemAt(e.X, e.Y)
If e.Button = Windows.Forms.MouseButtons.Left Then
If Not (lvItem Is Nothing) Then
Dim _ItemDim As strItemDim = GetItemDim(CType(e.X, Int16), livROH.arrLocX_Col)
Select Case _ItemDim.colNr
Case 0
'Mach nichts oder was auch immer
Case 1 To 6
'Zeig mir die Tabelle mit den einzelnen Arbeitsstunden
End Select
End If
End If
End Sub |  |
 | 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 |
  |
|
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 InfosTipp des Monats Oktober 2025 Matthias KozlowskiUmlaute konvertierenErsetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) Access-Tools Vol.1 
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
|
|
Copyright ©2000-2025 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
|
|