| |
VB.NET - Ein- und UmsteigerRe: Laufzeit erstellter ListtView Befüllen | | | Autor: Manfred X | Datum: 28.09.13 18:45 |
| Einfach das MouseDown-Event nutzen.
(Für alle Events eines Control können Handler definiert werden).
'Hier die Zuordnung
AddHandler lv.MouseDown, AddressOf ListViews_MouseDown
'der Handler
Private Sub ListViews_MouseDown(sender As Object, e As _
System.Windows.Forms.MouseEventArgs)
.......
End Sub | |
Laufzeit erstellter ListtView Befüllen | | | Autor: dj.tommy | Datum: 28.09.13 17:19 |
| Hallo Leute!
Ich versuche für ein Bekannten ein Programm zu schreiben, so das man mit ListView im Laufzeit erstellen kann, was kein Problem ist.
So sieht man der erste Code aus:
Public Class Form1
Private WithEvents LV As ListView
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles MyBase.Load
For i As Integer = 0 To 4
Dim LV = New ListView()
With LV
LV.Items.Add(i + 1)
'.Text = i + 1
.Left = 100
.Height = 30
.Top = 10 + (30 * i)
End With
AddHandler LV.Click, AddressOf LV_Click
AddHandler LV.DoubleClick, AddressOf LV_DoubleClick
Me.Controls.Add(LV)
Next
End Sub
Private Sub LV_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Dim lText As String = DirectCast(sender, ListView).FocusedItem.Text
MsgBox(lText)
End Sub
Private Sub LV_DoubleClick(ByVal sender As Object, ByVal e As _
System.EventArgs)
MsgBox("Doppelklick")
End Sub Ich weiss nur wie mann Text auslesen kann:
Private Sub LV_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Dim lText As String = DirectCast(sender, ListView).FocusedItem.Text
MsgBox(lText)
End Sub Nun die genaue frage:
Angenommen man erstellt 2 Listview, wie kann ich es Herausfinden welche ListView angeklickt wurde und wie Man es befüllt?
Und ist es irgendwie möglich das man das Herausgefundene Listview in einem variable übergibt so das man es so schreiben kann?
Dim Lv as <-- übermittelte ListView
MsgBox(Lv.Items(Lv.FocusedItem.Index).Text) Danke im Vorraus für die Hilfe
DjTommy
| |
Re: Laufzeit erstellter ListtView Befüllen | | | Autor: Manfred X | Datum: 28.09.13 17:28 |
| Hallo!
Du kannst verschiedene Handler für die Listviews erstellen.
Oder, wie in Deinem Code schon verwendet, kannst Du über den
Sender-Parameter eine Referenz auf das Listview bekommen.
Dim LV as ListView = CType(Sender, ListView)
Der Zugriff über die Controls-Auflistung ist ebenfalls möglich.
Du kannst beim Erstellen mehrerer Listviews auch eine List(of ListView) benutzen
und die dynamisch erstellten ListView-Instanzen per ADD-Methode dort anhängen.
Der Zugriff auf ein LV ist dann z.B. über den Listenindex möglich. | |
Re: Laufzeit erstellter ListtView Befüllen | | | Autor: dj.tommy | Datum: 28.09.13 17:49 |
| Hallo Manfred!
Danke für deine Hilfe.
Nur was du mir da schreibst ist für mich Neuland
Kannst du mir mal ein Beispiel geben?
Vielen Dank | |
Re: Laufzeit erstellter ListtView Befüllen | | | Autor: Manfred X | Datum: 28.09.13 18:04 |
| Public Class frmListViews
Dim myListViews As New List(Of ListView)
Private Sub frmListViews_Load(sender As System.Object, _
e As System.EventArgs) Handles MyBase.Load
Me.Height = 650 : Me.Width = 400
Dim lvh As Integer = 150
Dim lvw As Integer = 300
'Listviews erstellen
For i As Integer = 0 To 3
Dim lv As New ListView
With lv
.Height = lvh : .Width = lvw
.Top = i * (lvh + 10) : .Left = 10
.Tag = CStr(i) 'Kennung für Zugriff
.Items.Add("Listview" & cstr(i))
.View = View.Details
.Columns.Add("Information", 200)
End With
AddHandler lv.Click, AddressOf ListViews_Click
'Listview auflisten
myListViews.Add(lv)
Me.Controls.Add(lv)
Next i
End Sub
Private Sub ListViews_Click(sender As Object, e As System.EventArgs)
Dim lv As ListView = CType(sender, ListView) 'Referenz
Dim kennung As Integer = CInt(lv.Tag) 'Identifikation
lv.Items(0).Text = "Ich bin angeclickt worden" 'Zugriff
'alternativer Zugriff per Liste
myListViews(kennung).Items.Add("Listenzugriff erfolgt")
End Sub
End Class | |
Re: Laufzeit erstellter ListtView Befüllen | | | Autor: dj.tommy | Datum: 28.09.13 18:38 |
| Danke für deine hilfe
eine letzte frage habe ich leider noch es geht um Event.
die Listview klick events wird jetzt so aufgebaut:
Private Sub ListViews_Click(sender As Object, e As System.EventArgs) Nun wenn ich die Spalte bearbeiten möchte setzte ich den textbox mit den koordinaten LV.HitTest(e.X, e.Y) nun mit "e As System.EventArgs" funktioniert es nicht sondern nur mit " e As System.Windows.Forms.MouseEventArgs".
Leider kommt eine Fehlermeldung:"Das Objekt des Typs "System.EventArgs" kann nicht in Typ "System.Windows.Forms.MouseEventArgs" umgewandelt werden."
wie kann ich das problemlösen, das ich e.y und e.x bekomme? | |
Re: Laufzeit erstellter ListtView Befüllen | | | Autor: dj.tommy | Datum: 28.09.13 18:52 |
| Ah ok der Fehler ist MouseDown statt Click
Tztzt das mir das nicht selbst aufgefallen ist.
Danke für Alles
Ich wünsche dir und alle anderen schönen Abend | |
| 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 |
|
|
Neu! sevDTA 3.0 Pro
SEPA mit Kontonummernprüfung
Erstellen von SEPA-Dateien mit integriertem BIC-Verzeichnis und Konto- nummern-Prüfverfahren, so dass ungültige Bankdaten bereits im Vorfeld ermittelt werden können. Weitere InfosTipp des Monats TOP Entwickler-Paket
TOP-Preis!!
Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR...
Jetzt nur 599,00 EURWeitere 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
|
|