Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Listbox innehållande instanser av en klass (objekt)

Postades av 2005-08-08 14:20:00 - Philip Hatt, i forum vb.net, Tråden har 3 Kommentarer och lästs av 952 personer

Hej. Jag har en listbox som innehåller x antal objekt av typen Person. Person klassen innehåller fälten namn, efternamn osv. I den kör jag metoden ToString, som jag overridar. Dvs att min toString metod körs när listboxen ritas upp.

Hur skall jag få listboxen att uppdateras när jag har gjort ändringar i någor av objekten i listan? Jag ändrar kanske på ett namn, och trycker på uppdatera. Ändringen syns ifall jag kikar på objektet i en editeringsvy, men inte i listboxen. Jag måste ju kunna refresha listan på något sätt, eller hur? Objekten finns för tillfället inte i någon databas, utan skrivs bara in när programmet startas, och lagras i Listboxen.

<code>

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim i As Integer

For i = 0 To 20
lstPersons.Items.Add(New Person("Person " & i, "Efternamn " & i, DateTime.Now().AddDays(Double.Parse(i.ToString())).ToString()))
Next
End Sub

Public Class Person
Private m_firstname As String
Private m_lastname As String
Private m_birthday As DateTime

Public Sub New(ByVal firstname As String, ByVal lastname As String, ByVal birthday As DateTime)
m_firstname = firstname
m_lastname = lastname
m_birthday = birthday
End Sub

Public Overrides Function ToString() As String

Return m_firstname & " " & m_lastname & ". " & m_birthday
End Function

Public Property firstname() As String
Get
Return m_firstname
End Get
Set(ByVal Value As String)
m_firstname = Value
End Set
End Property
Public Property lastname() As String
Get
Return m_lastname
End Get
Set(ByVal Value As String)
m_lastname = Value
End Set
End Property
Public Property birthday() As String
Get
Return m_birthday
End Get
Set(ByVal Value As String)
m_birthday = Value
End Set
End Property
End Class
</code>


Svara

Sv: Listbox innehållande instanser av en klass (objekt)

Postades av 2005-08-08 17:07:42 - Peter Ilis

Här är en lösning som borde fungera:

Lägg till ett event i Person och 'raisa' det vid uppdatering av de olika fälten som visas i drop-boxen.
<code>
Public Class Person
Public Event DisplayValueChanged(ByVal Person As Person)

Public Property firstname() As String
Get
Return m_firstname
End Get
Set(ByVal Value As String)
m_firstname = Value
RaiseEvent DisplayValueChanged(Me)
End Set
End Property
</code>

I din load funktion lägger du till event-handlers för alla personer:
<code>
Dim i As Integer
Dim Person as Person
For i = 0 To 20
Person= New Person("Person " & i, "Efternamn " & i, DateTime.Now().AddDays(Double.Parse(i.ToString())).ToString())
addhandler Person.DisplayValueChanged, addressof ItemChange
lstPersons.Items.Add(Person)
Next
</code>

Och sedan denna sub i formuläret:
<code>
Private sub ItemChange(Person as Person)
Dim i As Integer
For i = 0 To ComboBox1.Items.Count - 1
If ComboBox1.Items(i) Is Person Then
ComboBox1.Items(i) = ComboBox1.Items(i)
Exit For
End If
Next
End sub
</code>

Med vänliga hälsningar
Peter Ilis


Svara

Sv:Listbox innehållande instanser av en klass (objekt)

Postades av 2005-08-09 12:02:51 - Philip Hatt

OK. Tack för svaret. Det fungerar perfekt. Vet dock inte riktigt varför? Är det så att listboxen "refreshas" ifall man gör följande operation:
<code>
ComboBox1.Items(i) = ComboBox1.Items(i)
</code>
mvh,

Philip


Svara

Sv: Listbox innehållande instanser av en klass (objekt)

Postades av 2005-08-09 16:09:24 - Peter Ilis

Jo, det verkar som det :)

/Peter


Svara

Nyligen

  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 724
27 958
271 751
445
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies