Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB.NET: VB 2005 .NET: Tietyn Listbox itemin lihavointi?

Tapsa84 [22.09.2005 15:31:11]

#

Tässä koodi pätkä jolla haetaan tietokannasta viestit ja sijoitetaan mydata muuttujaan. Sieltä ne laitetaan listboxiin, mutta ne ns. "item", joissa kohta luettu on 0 pitäisi saada lihavoitua.

Kenelläkään ehdoituksia?

Private Sub hae_viestit()
        mydata.Clear()
        Dim conn As New MySqlConnection(Form1.yhteys)
        Dim myCommand As New MySqlCommand
        Dim myAdapter As New MySqlDataAdapter
        myCommand.Connection = conn
        myCommand.CommandText = "SELECT viesti_id,lahettaja_id, aika_leima, luettu, CONCAT(enimi,' ',snimi,':  ',Aihe) AS Saapunut FROM viestit,tunnukset " _
        & "WHERE viestit.lahettaja_id = tunnukset.id AND viestit.vastaanottaja_id = ?kayttaja ORDER BY viestit.luettu"
        myCommand.Parameters.Add("?kayttaja", Form2.tayttaja)
        myAdapter.SelectCommand = myCommand

        Try
            conn.Open()
            myAdapter.Fill(mydata)
            conn.Close()
            myAdapter.Dispose()

            ListBox1.DataSource = mydata
            ListBox1.DisplayMember = "Saapunut"
            ListBox1.ValueMember = "viesti_id"

            ListBox1.Enabled = True
        Catch myerror As MySqlException
            MessageBox.Show(myerror.Message)
        End Try
    End Sub

Niko [24.09.2005 10:17:44]

#

Käytä listview controllia :)
Siinä voi laittaa jokaiselle oman tyylin

Tapsa84 [24.09.2005 15:30:48]

#

Tein silläkin kokeilua, mutta sen käyttäminen oli työlästä ja silläkin varmasti yhtä vaikea homma kuin listbox.

Private Sub hae_tyontekijat()
        Dim conn As New MySqlConnection(Form1.yhteys)
        Dim myCommand As New MySqlCommand
        Dim myAdapter As New MySqlDataAdapter
        Dim myReader As MySqlDataReader

        myCommand.Connection = conn
        myCommand.CommandText = "SELECT id, CONCAT(enimi,' ',snimi) AS Nimi, email AS Sähköposti,last_load FROM tunnukset"
        myAdapter.SelectCommand = myCommand

        Try
            conn.Open()
            myAdapter.Fill(myDataTyontekijat)
            myReader = myCommand.ExecuteReader

            While myReader.Read
                Dim listitem As New ListViewItem(myReader.Item("Nimi").ToString)
                listitem.SubItems.Add(myReader.Item("Sähköposti"))
                listitem.SubItems.Add(myReader.Item("last_load"))

                ListView1.Items.Add(listitem)

            End While
            conn.Close()
        Catch myerror As MySqlException

        End Try
    End Sub

Niko [24.09.2005 17:50:49]

#

listitem.fontialla voit muuttaa tota tyyliä

Tapsa84 [26.09.2005 10:05:25]

#

Niko kirjoitti:

listitem.fontialla voit muuttaa tota tyyliä

Niin mutta listview:ssä ei ole ValueMember:ä, jonka avulla on helpompi toteuttaa noita mysql kyselyitä.

Niko [26.09.2005 22:39:39]

#

No joko teet vaikeammin tai sitten sun pitää tyytyä siihen mitä on tarjolla... Microsoftin Forumissa vois joku osata neuvoa enemmän varmaan...

http://forums.microsoft.com/msdn/default.aspx

onissine [03.10.2005 18:50:13]

#

Voit kyllä listviewitemien avulla lihavoida tietyn rivin. Oon tässä esimerkissä laittanu jokatoisen rivin taustan harmaaksi vähän niinku iTunesissa on.. toivottavasti esimerkistä on apua.

'Make array of customers
customersArray = makeCustomersArray(sqlQuery)

For i = 0 To customersArray.Count - 1

    myCustomer = customersArray(i)

    'Generate new listViewItem
    If i Mod 2 = 0 Then
        myListViewItem = New ListViewItem(New String() {myCustomer.getCompany, myCustomer.getLastName, myCustomer.getFirstName, myCustomer.getPhone, myCustomer.getMobile, myCustomer.getEmail, myCustomer.getCustomerId}, -1, System.Drawing.Color.Empty, System.Drawing.Color.FromArgb(CType(255, Byte), CType(255, Byte), CType(255, Byte)), New System.Drawing.Font("Microsoft Sans Serif", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)))
    Else
        myListViewItem = New ListViewItem(New String() {myCustomer.getCompany, myCustomer.getLastName, myCustomer.getFirstName, myCustomer.getPhone, myCustomer.getMobile, myCustomer.getEmail, myCustomer.getCustomerId}, -1, System.Drawing.Color.Empty, System.Drawing.Color.FromArgb(CType(224, Byte), CType(224, Byte), CType(224, Byte)), New System.Drawing.Font("Microsoft Sans Serif", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)))
    End If

    'Add new listViewItem to list
    Me.customersList.Items.AddRange(New ListViewItem() {myListViewItem})

Next i

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta