vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
SEPA-Dateien erstellen inkl. IBAN-, BLZ-/Kontonummernprüfung  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

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

VB.NET - Fortgeschrittene
Re: 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
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Listview Zeile uns Spalte nach dem klicken ermitteln1.882gerhard115.03.06 12:22
Re: Listview Zeile uns Spalte nach dem klicken ermitteln1.453Hänk15.03.06 17:21
Re: Listview Zeile uns Spalte nach dem klicken ermitteln1.454Flatty15.03.06 21:17
Re: Listview Zeile uns Spalte nach dem klicken ermitteln1.411gerhard116.03.06 06:57
Re: Listview Zeile uns Spalte nach dem klicken ermitteln1.673Flatty16.03.06 10:40
Re: Listview Zeile uns Spalte nach dem klicken ermitteln1.441gerhard116.03.06 10:57
Re: Listview Zeile uns Spalte nach dem klicken ermitteln1.436Flatty16.03.06 11:14
Re: Listview Zeile uns Spalte nach dem klicken ermitteln1.469gerhard116.03.06 12:29

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

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

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