Listwiev nesnesindeki bir satıra tıklayınca alt öğeleri ile rengi kırmızı olsun

Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista


şekilde görüdüğü üzere listwiev üzerinde bir değere tıklayınca ana başlık mavi olup, alt öğeleri renklenmemektedir.
Ben Seçim yaptığım zaman alt öğeler ile birlikte renklenmesini istiyorum.
(mümkünse seçilen satırın rengi kırmızı, yazılar siyah, font kalın, italik gb.)
Ayçiçek yerine ilaç değeri seçili iken Buğday tohumunu seçtiğimde Ayçiçek yerine ilaç değeri default konuma gelip Buğday tohumu na ait satır dediğim değişkleri yaşayacaktır.


Emeği geçenlere şimdiden teşekkürler.
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Muhtemelen

Kod:
Private Sub Lvw_AdSoyad_ItemClick(ByVal Item As MSComctlLib.ListItem)
MsgBox "test"
End Sub
olayı içerisine yazılacak ama ne yazılacak ?????
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Userform initialize olurken, (Listview yapılandırılırken)

Kod:
Lvw_AdSoyad.FullRowSelect=True
komut satırını kodlarınıza ekleyin. Bu özellik, Listview'de satırın komple olarak seçimini sağlar. (Tabi ki LvwReport görünümündeyken)

Kırmızıya veya çingiş pembeye de boyanabilir. Ama bunun için sizin belirttiğiniz gibi Item_Click olayına, Lvw'de o anki SelectedItem'e göre Items ve SubItems'lerin ForeColor değerleriyle oynamak gerekir.

Ama yukarıdaki kod, etliye sütlüye dokunmadan işinizi görür sanıyorum
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Kod:
Private Sub Lvw_AdSoyad_ItemClick(ByVal Item As MSComctlLib.ListItem)
    With Lvw_AdSoyad
        secsat = .SelectedItem.Index
        With .ListItems(secsat)
            .ForeColor = vbBlue
            .Bold = True
            For lsi_no = 1 To 4
                .ListSubItems(lsi_no).ForeColor = vbBlue
                .ListSubItems(lsi_no).Bold = True
            Next
        End With
    End With
End Sub
Seçtiğim satırn biçemlenmesi işini hallettim... ancak başka satırı seçince eski haline gelmesi için ne yapılmalıdır. saygılarımla
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Kod:
Private Sub Lvw_AdSoyad_ItemClick(ByVal Item As MSComctlLib.ListItem)
Lw_Son_Sut = 4
    With Lvw_AdSoyad
'İlk haline getir.... Bu kısım kullanılmazsa her seçilen satır biçemlediğiniz gibi kalır.
        lw_son_sat = .ListItems.Count
        For li_no = 1 To lw_son_sat
            With .ListItems(li_no)
                .ForeColor = vbBlack
                .Bold = False
                For lsi_no = 1 To Lw_Son_Sut
                    .ListSubItems(lsi_no).ForeColor = vbBlack
                    .ListSubItems(lsi_no).Bold = False
                Next
            End With
        Next
'Seçili Satırı biçimlendir
        secsat = .SelectedItem.Index
        With .ListItems(secsat)
            .ForeColor = vbBlue
            .Bold = True
            For lsi_no = 1 To Lw_Son_Sut
                .ListSubItems(lsi_no).ForeColor = vbBlue
                .ListSubItems(lsi_no).Bold = True
            Next
        End With
    End With
End Sub
ben bu şekilde bir çözüm buldum....

Ferhat hocam kodunuzu hemen deniyorum. alakanıza teşekkür ederim.
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Colon sayısını kendiliğinden bulmak varken elle bulmayalım ve Resimde görüldüğü üzere Boşkolonlarımız varken hata almamak için düzenleme yaptım.

Kod:
Private Sub Lvw_AdSoyad_ItemClick(ByVal Item As MSComctlLib.ListItem)
    With Lvw_AdSoyad
        Lw_Son_Sut = .ColumnHeaders.Count - 1   '.ListSubItems Kolon sayısı
'İlk haline getir.... Bu kısım kullanılmazsa her seçilen satır biçemlediğiniz gibi kalır.
ResetAt:
        Lw_Son_Sat = .ListItems.Count
        For li_no = 1 To Lw_Son_Sat
            With .ListItems(li_no)
                .ForeColor = vbBlack
                .Bold = False
                For lsi_no = 1 To Lw_Son_Sut
                    On Error Resume Next
                        .ListSubItems(lsi_no).ForeColor = vbBlack
                        .ListSubItems(lsi_no).Bold = False
                    On Error GoTo 0
                Next
            End With
        Next
Bicemle:
'Seçili Satırı biçimlendir
        secsat = .SelectedItem.Index
        With .ListItems(secsat)
            .ForeColor = vbRed
            .Bold = True
            For lsi_no = 1 To Lw_Son_Sut
                On Error Resume Next
                    .ListSubItems(lsi_no).ForeColor = vbRed
                    .ListSubItems(lsi_no).Bold = True
                On Error GoTo 0
            Next
        End With
    End With
End Sub
Ferhat hocam dediğiniz gibi sizn yönteminiz suya sabuna dokundurmuyor...
FullRowSelect te band rengi kırmızı, yazılar Koyu siyah olabilir mi? Default olarak Bant Mavi ve yazılar beyaz ince.
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Ferhat hocam dediğiniz gibi sizn yönteminiz suya sabuna dokundurmuyor...
FullRowSelect te band rengi kırmızı, yazılar Koyu siyah olabilir mi? Default olarak Bant Mavi ve yazılar beyaz ince.
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Böyle bir imkanın olacağını sanmıyorum. Yani daha önce bir örneğini görmedim. Varsa da, size önerdiğimden daha kısa bir kodla yazılamayacağını garanti ederim ...
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Böyle bir imkanın olacağını sanmıyorum. Yani daha önce bir örneğini görmedim. Varsa da, size önerdiğimden daha kısa bir kodla yazılamayacağını garanti ederim ...
bendeki de merak işte hocam ... olursa görsellik katmak istediğimz zamanlarda kullanırız.
alakanız için tekrar teşekkürler.
 
Üst