[Çözüldü]  ListView' de Satırların Arka Plânını Renklendirme

Listeleme kutusu. Verileriniz klasör ve dosyalarınızı görsel olarak kontrol edebileceğiniz bir nesne modeli.

ListView' de Satırların Arka Plânını Renklendirme

İleti#1)  umutburak » 26 Mar 2012 11:50

Selam arkadaşlar,
hepinize hayırlı haftalar,kolaylıklar diliyorum.Aşagıdaki kodlarla listview'e toplam 27 satırdan oluşan verilerimi alıyorum.Sorum, bu 27 satırı ayrı ayrı renklendirebilirmiyiz.Saygılar hepinize.
Kod: Tümünü seç
Private Sub UserForm_Initialize()
With ListView1
    .View = lvwReport
    .FullRowSelect = True
    .Gridlines = True
    .ColumnHeaders.Add , , "FİRMA"
    .ColumnHeaders.Add , , "MARKA"
    .ColumnHeaders.Add , , "BAŞLIK"
    .ColumnHeaders.Add , , "OCAK"
    .ColumnHeaders.Add , , "ŞUBAT"
    .ColumnHeaders.Add , , "MART"
    .ColumnHeaders.Add , , "NİSAN"
    .ColumnHeaders.Add , , "MAYIS"
    .ColumnHeaders.Add , , "HAZİRAN"
    .ColumnHeaders.Add , , "TEMMUZ"
    .ColumnHeaders.Add , , "AĞUSTOS"
    .ColumnHeaders.Add , , "EYLÜL"
    .ColumnHeaders.Add , , "EKİM"
    .ColumnHeaders.Add , , "KASIM"
    .ColumnHeaders.Add , , "ARALIK"
    .ColumnHeaders.Add , , "GENEL TOPLAM"
End With
With Sheets("aylar")
    For i = 2 To .Range("C65536").End(3).Row
        ListView1.ListItems.Add , , .Cells(i, "C").Value
            For a = 3 To 17
                ListView1.ListItems(ListView1.ListItems.Count).ListSubItems.Add , , .Cells(i, a + 1).Value
    Next a, i
End With
End Sub
Kullanıcı avatarı
umutburak
Yeni Başlamış
 
Adı Soyadı:umut ece
Kayıt: 04 Ağu 2010 00:19
Yaş: 43
İleti: 43
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul/Güngören

Cevap: Listview Satır Renklendirme

İleti#2)  Tarkan VURAL » 26 Mar 2012 12:34

Merhaba,
Kod: Tümünü seç
Next a, i
satırından sonra şunları yazdığınızda oluşan sonuç fikir vermeye yeterli oluyor mu ?
Kod: Tümünü seç
For b = 1 To ListView1.ListItems.Count Step 2
    ListView1.ListItems(b).ForeColor = vbMagenta
    For c = 1 To ListView1.ListItems(b).ListSubItems.Count
        ListView1.ListItems(b).ListSubItems(c).ForeColor = vbMagenta
    Next c
Next b
Resim
www.tarkanvural.com.tr

İnnâ lillâhi ve innâ ileyhi raciûn
Şüphesiz ki; biz Allah’a âidiz ve vakti geldiğinde O’na döndürüleceğiz.

HasbunAllâhu ve nimel vekîl
Bize Allah yeter. O ne güzel vekildir.


ExcelVBA.NET' e katkıda bulunmak ister misiniz ? O halde BAĞIŞ butonunu tıklayın...
Kullanıcı avatarı
Tarkan VURAL
Yönetim Kurulu
 
Adı Soyadı:Tarkan VURAL
Kayıt: 14 Haz 2008 20:27
Konum: tarkan@excelvba.net
Meslek: LUU, Yazılım Geliştirme Müdürü
Yaş: 45
İleti: 26822
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul - Beylikdüzü

Cevap: Listview Satır Renklendirme

İleti#3)  umutburak » 26 Mar 2012 12:49

Tarkan bey merhaba,
özürdileyerek sorumu şu şekilde düzeltmek istiyorum.Yazı tipi degil, arka plan rengi 1.satır ve 4.satır arası bir renk, 5.satır ve 6. satır bir renk.Saygılar.
Kullanıcı avatarı
umutburak
Yeni Başlamış
 
Adı Soyadı:umut ece
Kayıt: 04 Ağu 2010 00:19
Yaş: 43
İleti: 43
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul/Güngören

Cevap: ListView Satır Renklendirme

İleti#4)  Murat OSMA » 26 Mar 2012 14:02

Bildiğim kadarıyla ListView'in satırlar için BackColor özelliği yok. [ilginc]
Kullanıcı avatarı
Murat OSMA
Site Forum Yöneticisi
 
Adı Soyadı:Murat OSMA
Kayıt: 05 Arl 2008 00:34
Konum: İstanbul
Meslek: Excel & VBA Eğitmeni
Yaş: 33
İleti: 14311
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Bağcılar - İSTANBUL

REKLAM
Excel Logo XML Oluşturucu
Logo Object Designer ile Uyarlama

Cevap: ListView Satır Renklendirme

İleti#5)  Tarkan VURAL » 26 Mar 2012 16:03

Doğru. [evet] VBA' da satırlara BackColor özelliği uygulanamıyor. VB projelerinde Picture özelliğinden takviye alarak yapılıyor ama VBA içinde PictureBox nesnesi olmadığından, AutoReDraw ve Line gibi önemli özelliklerini kullanamıyoruz. VB ile yapılmış bir örneğini ekliyorum. Sanırım istediğiniz uygulama aynen öyle.

vblistviewresmi.jpg


Alternatif olarak geliştirdiğim şu çözümü önerebilirim:
Bir tane Imagelist nesnesi ekleyin ve buna da minik renkli resimler ilave edin. Satırın tamamını renklendirmese de , baş kısımlarına renk vererek çözüme yakın olanak sağlayabiliyor.
evnlistviewresmi.jpg

Eğer bu şekilde yapmak ilginizi çekiyor ise, eklediğim örnek dosyadan ve minik renkli resimlerden faydalanabilirsiniz. ;) Hem geliştirmeye de açık bir fikir. Geliştirecek olan arkadaşlara yol gösterecektir.
Bu iletideki ekleri görmek için gerekli yetkilere sahip değilsiniz.
Resim
www.tarkanvural.com.tr

İnnâ lillâhi ve innâ ileyhi raciûn
Şüphesiz ki; biz Allah’a âidiz ve vakti geldiğinde O’na döndürüleceğiz.

HasbunAllâhu ve nimel vekîl
Bize Allah yeter. O ne güzel vekildir.


ExcelVBA.NET' e katkıda bulunmak ister misiniz ? O halde BAĞIŞ butonunu tıklayın...
Kullanıcı avatarı
Tarkan VURAL
Yönetim Kurulu
 
Adı Soyadı:Tarkan VURAL
Kayıt: 14 Haz 2008 20:27
Konum: tarkan@excelvba.net
Meslek: LUU, Yazılım Geliştirme Müdürü
Yaş: 45
İleti: 26822
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul - Beylikdüzü

Cevap: ListView Satır Renklendirme

İleti#6)  Murat OSMA » 26 Mar 2012 16:09

Güzel örnek... --)( şkşk
Kullanıcı avatarı
Murat OSMA
Site Forum Yöneticisi
 
Adı Soyadı:Murat OSMA
Kayıt: 05 Arl 2008 00:34
Konum: İstanbul
Meslek: Excel & VBA Eğitmeni
Yaş: 33
İleti: 14311
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Bağcılar - İSTANBUL

REKLAM
ETA - Excel Konsolide Raporlama
ETA Excel Personel Entegre Raporu

Cevap: ListView Satır Renklendirme

İleti#7)  umutburak » 26 Mar 2012 17:32

şkşk --)( Tarkan abi senin bilgine olan ilgim günden güne artıyor.Çok [TESEKKÜR] abi.Allah razı olsun abicim.Saygılar.
Konu çözülmüştür.
Kullanıcı avatarı
umutburak
Yeni Başlamış
 
Adı Soyadı:umut ece
Kayıt: 04 Ağu 2010 00:19
Yaş: 43
İleti: 43
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul/Güngören

Cevap: ListView Satır Renklendirme

İleti#8)  umutburak » 26 Mar 2012 17:43

Tarkan abi,aşagıdaki çalışmanın kodlarını görme şansımız yokmu.Tam olarak istedigim bu çalışmada.
vblistviewresmi.jpg
Bu iletideki ekleri görmek için gerekli yetkilere sahip değilsiniz.
Kullanıcı avatarı
umutburak
Yeni Başlamış
 
Adı Soyadı:umut ece
Kayıt: 04 Ağu 2010 00:19
Yaş: 43
İleti: 43
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul/Güngören

Cevap: [Çözüldü] ListView Satır Renklendirme

İleti#9)  Tarkan VURAL » 26 Mar 2012 22:28

Bu çalışmayı VBA' da yapabilmek kısa zamanda mümkün olmadı. Biraz uğraştım ama yapamadım. Sebeplerini de iletimde yazmıştım zaten. PictureBox ile oluyor ama VBA bu nesneyi tanımadı. Belki API desteği ile bir çare bulunabilir. Ama onunla ilgili fikrim de yok. Araştırmak gerekiyor, zamanım yok. :) VB projesini paylaşırım tabiki. Ama proje yanımda değil, işyerindeki bilgisayarımda kaldı. Oradan eklerim.

İyi akşamlar.
Resim
www.tarkanvural.com.tr

İnnâ lillâhi ve innâ ileyhi raciûn
Şüphesiz ki; biz Allah’a âidiz ve vakti geldiğinde O’na döndürüleceğiz.

HasbunAllâhu ve nimel vekîl
Bize Allah yeter. O ne güzel vekildir.


ExcelVBA.NET' e katkıda bulunmak ister misiniz ? O halde BAĞIŞ butonunu tıklayın...
Kullanıcı avatarı
Tarkan VURAL
Yönetim Kurulu
 
Adı Soyadı:Tarkan VURAL
Kayıt: 14 Haz 2008 20:27
Konum: tarkan@excelvba.net
Meslek: LUU, Yazılım Geliştirme Müdürü
Yaş: 45
İleti: 26822
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul - Beylikdüzü

Cevap: [Çözüldü] ListView Satır Renklendirme

İleti#10)  umutburak » 27 Mar 2012 01:39

Teşekkür ediyorum abicim.Emekelerinizin hakkı ödenmez,sagolasınız.
Kullanıcı avatarı
umutburak
Yeni Başlamış
 
Adı Soyadı:umut ece
Kayıt: 04 Ağu 2010 00:19
Yaş: 43
İleti: 43
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul/Güngören

Cevap: [Çözüldü] ListView Satır Renklendirme

İleti#11)  Osman AKYÜZ » 27 Mar 2012 11:26

Zaman zaman bu konuyu araştırmak istedim , ama gerçekten zor bir konu.Bu sefer biraz üsteledim ve buldum.Onca yabancı kaynaklı siteler de zor da olsa buldum.[gulumse] [yummy] şkşk [evet]

Çalışmamıza bir form ve üzerine bir adet listview ekleyerek , kod alanına bu kodu yapıştırın.

Userform kodu

Kod: Tümünü seç
Option Explicit
Private Declare Function SetWindowLong& Lib "user32" Alias _
"SetWindowLongA" (ByVal hWnd&, ByVal nIndex&, ByVal dwNewLong&)
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindow Lib "user32" (ByVal hWnd As Long _
, ByVal wCmd As Long) As Long
Private Const GWL_WNDPROC As Long = (-4&)
Private hWnd As Long

Private Sub UserForm_Initialize()
Dim i&
hWnd = GetWindow(FindWindow(vbNullString, Me.Caption), 5)
With Me.ListView1
.ColumnHeaders.Add , , "Item Column", .Width * 1 / 3
.ColumnHeaders.Add , , "Subitem 1", .Width * 1 / 3
.ColumnHeaders.Add , , "Subitem 2", .Width * 1 / 3
For i = 0 To 99
With .ListItems.Add(, , "Item " & Format(i, "00"))
.SubItems(1) = "Subitem 1"
.SubItems(2) = "Subitem 2"
End With
Next
End With
OldProc = SetWindowLong(hWnd, GWL_WNDPROC, AddressOf WindowProc)
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, _
CloseMode As Integer)
Call SetWindowLong(hWnd, GWL_WNDPROC, OldProc)
End Sub


Bir adet standart modul ekleyerek bu kod bloğunu yapıştırın

Modul kodu

Kod: Tümünü seç
Option Explicit
' Constants used for customdraw routine
Private Const NM_CUSTOMDRAW = (-12&)
Private Const WM_NOTIFY As Long = &H4E&
Private Const CDDS_PREPAINT As Long = &H1&
Private Const CDRF_NOTIFYITEMDRAW As Long = &H20&
Private Const CDDS_ITEM As Long = &H10000
Private Const CDDS_ITEMPREPAINT As Long = CDDS_ITEM Or CDDS_PREPAINT
Private Const CDRF_NEWFONT As Long = &H2&

' The NMHDR structure contains information about a
' notification message.
' The pointer to this structure is specified as the lParam member of
'a WM_NOTIFY message.
Private Type NMHDR
hWndFrom As Long ' Window handle of control sending message
idFrom As Long ' Identifier of control sending message
code As Long ' Specifies the notification code
End Type

' Struct of the NMCUSTOMDRAW struct
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type

' Generic customdraw struct
Private Type NMCUSTOMDRAW
hdr As NMHDR
dwDrawStage As Long
hDC As Long
rc As RECT
dwItemSpec As Long
uItemState As Long
lItemlParam As Long
End Type

' Listview specific customdraw struct
Private Type NMLVCUSTOMDRAW
NMCW As NMCUSTOMDRAW
ForeColorText As Long
BackColorText As Long
' if IE >= 4.0 this member of the struct can be used
'iSubItem As Integer
End Type

' Function used to manipulate memory data
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _
(lpDest As Any, lpSource As Any, ByVal cBytes&)
' Function used to call the next window proc in the "chain" for the
' subclassed Window
Declare Function CallWindowProc& Lib "user32" Alias _
"CallWindowProcA" (ByVal lpPrevWndFunc&, ByVal hWnd&, _
ByVal Msg&, ByVal wParam&, ByVal lParam&)
' This var will hold a pointer to the original message handler
' so we MUST save it so that it can be restored before we
' exit the app.
' if we don't restore it.... CRASH!!!!
Public OldProc As Long

' WARNING -----------------------------------------------
' Do not try to step through this function in debug mode !
' You will crash also, do no set any break points in this function !
' You will crash subclassing is non-trivial and should be handled with
' extreame care !
'There are ways to use a "Debug" dll to allow you to set breakpoints in
' subclassed code in the IDE but this was not implimented for this demo.
' WARNING -----------------------------------------------

' This is implementation of the message handling routine
' determine which message was recieved
Function WindowProc(ByVal hWnd As Long, ByVal iMsg As Long _
, ByVal wParam As Long, ByVal lParam As Long) As Long
Select Case iMsg
Case WM_NOTIFY
' If it's a WM_NOTIFY message copy the data from the
' address pointed to by lParam into a NMHDR struct
Dim UDT_NMHDR As NMHDR
CopyMemory UDT_NMHDR, ByVal lParam, 12&
With UDT_NMHDR
If .code = NM_CUSTOMDRAW Then
' If the code member of the struct is NM_CUSTOMDRAW, copy
' the data pointed to by lParam into a NMLVCUSTOMDRAW struct
Dim UDT_NMLVCUSTOMDRAW As NMLVCUSTOMDRAW
' This is now OUR copy of the struct
CopyMemory UDT_NMLVCUSTOMDRAW, ByVal lParam, Len(UDT_NMLVCUSTOMDRAW)
With UDT_NMLVCUSTOMDRAW.NMCW
' Determine whether or not this is one of the messages we are
' interested in
Select Case .dwDrawStage
' If it's a prepaint message, tell windows WE want first dibs on
' painting for each item and then exit without letting VB get
' this message
Case CDDS_PREPAINT
WindowProc = CDRF_NOTIFYITEMDRAW
Exit Function
Case CDDS_ITEMPREPAINT
' Set the forecolor for items in the listview.
' Set the backcolor for items in the listview.
If (.dwItemSpec Mod 2) = 0 Then
UDT_NMLVCUSTOMDRAW.ForeColorText = vbRed
UDT_NMLVCUSTOMDRAW.BackColorText = &HC0C0C0
' Copy our copy of the struct back to the memory address pointed
' to by lParam
CopyMemory ByVal lParam, UDT_NMLVCUSTOMDRAW, Len(UDT_NMLVCUSTOMDRAW)
End If
' Tell windows that we changed the font and do not allow VB to
' get this Message
WindowProc = CDRF_NEWFONT
Exit Function
End Select
End With
End If
End With
End Select
' Pass all messages on to VB and then return the value to windows
WindowProc = CallWindowProc(OldProc, hWnd, iMsg, wParam, lParam)
End Function

Sub CustomListView()
UserForm1.Show
End Sub
En son Osman AKYÜZ tarafından, 27 Mar 2012 13:17 tarihinde değiştirildi, toplamda 3 değişiklik yapıldı.
Kullanıcı avatarı
Osman AKYÜZ
Site Dostu
 
Adı Soyadı:OSMAN AKYÜZ
Kayıt: 09 Haz 2010 23:20
Meslek: Üretim Takip Program Yazılımı - Stok/Sipariş/Fatura/Cari Yazılım - İşlemleri - Muhasebe
Yaş: 31
İleti: 645
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: TEKİRDAĞ/SÜLEYMANPAŞA

Cevap: [Çözüldü] ListView Satır Renklendirme

İleti#12)  Murat OSMA » 27 Mar 2012 12:11

Osman Bey, paylaşımınız için teşekkür ederim. --)(
Yalnız, kodları araştırdım ve doğru kodlar şu şekilde olmalı;

UserForm Kodları;
Kod: Tümünü seç
Option Explicit
Private Declare Function SetWindowLong& Lib "user32" Alias _
"SetWindowLongA" (ByVal hWnd&, ByVal nIndex&, ByVal dwNewLong&)
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindow Lib "user32" (ByVal hWnd As Long _
, ByVal wCmd As Long) As Long
Private Const GWL_WNDPROC As Long = (-4&)
Private hWnd As Long

Private Sub UserForm_Initialize()
Dim i&
hWnd = GetWindow(FindWindow(vbNullString, Me.Caption), 5)
With Me.ListView1
.View = lvwReport
.FullRowSelect = True
.ColumnHeaders.Add , , "Kolon 1", .Width * 1 / 3
.ColumnHeaders.Add , , "Kolon 2", .Width * 1 / 3
.ColumnHeaders.Add , , "Kolon 3", .Width * 1 / 3
For i = 0 To 24
With .ListItems.Add(, , "Ders: " & Format(i, "00"))
.SubItems(1) = "Excel"
.SubItems(2) = "VBA.Net"
End With
Next
End With
OldProc = SetWindowLong(hWnd, GWL_WNDPROC, AddressOf WindowProc)
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, _
CloseMode As Integer)
Call SetWindowLong(hWnd, GWL_WNDPROC, OldProc)
End Sub

Module Kodları;
Kod: Tümünü seç
Option Explicit
' Constants used for customdraw routine
Private Const NM_CUSTOMDRAW = (-12&)
Private Const WM_NOTIFY As Long = &H4E&
Private Const CDDS_PREPAINT As Long = &H1&
Private Const CDRF_NOTIFYITEMDRAW As Long = &H20&
Private Const CDDS_ITEM As Long = &H10000
Private Const CDDS_ITEMPREPAINT As Long = CDDS_ITEM Or CDDS_PREPAINT
Private Const CDRF_NEWFONT As Long = &H2&

' The NMHDR structure contains information about a
' notification message.
' The pointer to this structure is specified as the lParam member of
'a WM_NOTIFY message.
Private Type NMHDR
hWndFrom As Long ' Window handle of control sending message
idFrom As Long ' Identifier of control sending message
code As Long ' Specifies the notification code
End Type

' Struct of the NMCUSTOMDRAW struct
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type

' Generic customdraw struct
Private Type NMCUSTOMDRAW
hdr As NMHDR
dwDrawStage As Long
hDC As Long
rc As RECT
dwItemSpec As Long
uItemState As Long
lItemlParam As Long
End Type

' Listview specific customdraw struct
Private Type NMLVCUSTOMDRAW
NMCW As NMCUSTOMDRAW
ForeColorText As Long
BackColorText As Long
' if IE >= 4.0 this member of the struct can be used
'iSubItem As Integer
End Type

' Function used to manipulate memory data
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _
(lpDest As Any, lpSource As Any, ByVal cBytes&)
' Function used to call the next window proc in the "chain" for the
' subclassed Window
Declare Function CallWindowProc& Lib "user32" Alias _
"CallWindowProcA" (ByVal lpPrevWndFunc&, ByVal hWnd&, _
ByVal Msg&, ByVal wParam&, ByVal lParam&)
' This var will hold a pointer to the original message handler
' so we MUST save it so that it can be restored before we
' exit the app.
' if we don't restore it.... CRASH!!!!
Public OldProc As Long

' WARNING -----------------------------------------------
' Do not try to step through this function in debug mode !
' You will crash also, do no set any break points in this function !
' You will crash subclassing is non-trivial and should be handled with
' extreame care !
'There are ways to use a "Debug" dll to allow you to set breakpoints in
' subclassed code in the IDE but this was not implimented for this demo.
' WARNING -----------------------------------------------

' This is implementation of the message handling routine
' determine which message was recieved
Function WindowProc(ByVal hWnd As Long, ByVal iMsg As Long _
, ByVal wParam As Long, ByVal lParam As Long) As Long
Select Case iMsg
Case WM_NOTIFY
' If it's a WM_NOTIFY message copy the data from the
' address pointed to by lParam into a NMHDR struct
Dim UDT_NMHDR As NMHDR
CopyMemory UDT_NMHDR, ByVal lParam, 12&
With UDT_NMHDR
If .code = NM_CUSTOMDRAW Then
' If the code member of the struct is NM_CUSTOMDRAW, copy
' the data pointed to by lParam into a NMLVCUSTOMDRAW struct
Dim UDT_NMLVCUSTOMDRAW As NMLVCUSTOMDRAW
' This is now OUR copy of the struct
CopyMemory UDT_NMLVCUSTOMDRAW, ByVal lParam, Len(UDT_NMLVCUSTOMDRAW)
With UDT_NMLVCUSTOMDRAW.NMCW
' Determine whether or not this is one of the messages we are
' interested in
Select Case .dwDrawStage
' If it's a prepaint message, tell windows WE want first dibs on
' painting for each item and then exit without letting VB get
' this message
Case CDDS_PREPAINT
WindowProc = CDRF_NOTIFYITEMDRAW
Exit Function
Case CDDS_ITEMPREPAINT
' Set the forecolor for items in the listview.
' Set the backcolor for items in the listview.
If (.dwItemSpec Mod 2) = 0 Then
UDT_NMLVCUSTOMDRAW.ForeColorText = vbRed
UDT_NMLVCUSTOMDRAW.BackColorText = &HC0C0C0
' Copy our copy of the struct back to the memory address pointed
' to by lParam
CopyMemory ByVal lParam, UDT_NMLVCUSTOMDRAW, Len(UDT_NMLVCUSTOMDRAW)
End If
' Tell windows that we changed the font and do not allow VB to
' get this Message
WindowProc = CDRF_NEWFONT
Exit Function
End Select
End With
End If
End With
End Select
' Pass all messages on to VB and then return the value to windows
WindowProc = CallWindowProc(OldProc, hWnd, iMsg, wParam, lParam)
End Function

Sub CustomListView()
UserForm1.Show
End Sub

Örnek dosyayı da ekliyorum... --)(
Bu iletideki ekleri görmek için gerekli yetkilere sahip değilsiniz.
Kullanıcı avatarı
Murat OSMA
Site Forum Yöneticisi
 
Adı Soyadı:Murat OSMA
Kayıt: 05 Arl 2008 00:34
Konum: İstanbul
Meslek: Excel & VBA Eğitmeni
Yaş: 33
İleti: 14311
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Bağcılar - İSTANBUL

Cevap: [Çözüldü] ListView Satır Renklendirme

İleti#13)  Osman AKYÜZ » 27 Mar 2012 13:06

Kodu bulunca bir an önce paylaşmak istedim doğrusu.Çalıştığını görünce bir sorun görmedim. [yummy] --)( Neyse ki uzun zamandır aranılan kan bulundu Murat kardeş. --)( [oley] Dedim ya aceleden oldu.İki kodu da aynı vermişim.Düzelttim şimdi. hehe hehe hehe
En son Osman AKYÜZ tarafından, 27 Mar 2012 13:19 tarihinde değiştirildi, toplamda 1 değişiklik yapıldı.
Kullanıcı avatarı
Osman AKYÜZ
Site Dostu
 
Adı Soyadı:OSMAN AKYÜZ
Kayıt: 09 Haz 2010 23:20
Meslek: Üretim Takip Program Yazılımı - Stok/Sipariş/Fatura/Cari Yazılım - İşlemleri - Muhasebe
Yaş: 31
İleti: 645
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: TEKİRDAĞ/SÜLEYMANPAŞA

Cevap: [Çözüldü] ListView Satır Renklendirme

İleti#14)  Tarkan VURAL » 27 Mar 2012 13:17

Elinize sağlık arkadaşlar. Güzel bir örnek oldu. Ben de bir düzeltme yapayım o zaman. :D
Initialize böyle başlarsa daha anlaşılır olur.


Private Sub UserForm_Initialize()
Dim i&
hWnd = GetWindow(FindWindow(vbNullString, Me.Caption), 5)
With Me.ListView1
.View = lvwReport
.FullRowSelect = True

.ColumnHeaders.Add , , "Item Column", .Width * 1 / 3
Resim
www.tarkanvural.com.tr

İnnâ lillâhi ve innâ ileyhi raciûn
Şüphesiz ki; biz Allah’a âidiz ve vakti geldiğinde O’na döndürüleceğiz.

HasbunAllâhu ve nimel vekîl
Bize Allah yeter. O ne güzel vekildir.


ExcelVBA.NET' e katkıda bulunmak ister misiniz ? O halde BAĞIŞ butonunu tıklayın...
Kullanıcı avatarı
Tarkan VURAL
Yönetim Kurulu
 
Adı Soyadı:Tarkan VURAL
Kayıt: 14 Haz 2008 20:27
Konum: tarkan@excelvba.net
Meslek: LUU, Yazılım Geliştirme Müdürü
Yaş: 45
İleti: 26822
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul - Beylikdüzü

Cevap: [Çözüldü] ListView Satır Renklendirme

İleti#15)  Murat OSMA » 27 Mar 2012 13:33

Tarkan abi, mesajda ve dosyada belirttiğin düzeltmeleri yaptım... --)(
Kullanıcı avatarı
Murat OSMA
Site Forum Yöneticisi
 
Adı Soyadı:Murat OSMA
Kayıt: 05 Arl 2008 00:34
Konum: İstanbul
Meslek: Excel & VBA Eğitmeni
Yaş: 33
İleti: 14311
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Bağcılar - İSTANBUL

Cevap: [Çözüldü] ListView' de Satırların Arka Plânını Renkle

İleti#16)  umutburak » 27 Mar 2012 13:53

Süpersiniz vallahi.3 koladan hallettiniz olayı.Hepinize [TESEKKÜR]
Kullanıcı avatarı
umutburak
Yeni Başlamış
 
Adı Soyadı:umut ece
Kayıt: 04 Ağu 2010 00:19
Yaş: 43
İleti: 43
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul/Güngören

Cevap: [Çözüldü] ListView' de Satırların Arka Plânını Renkle

İleti#17)  umutburak » 27 Mar 2012 14:03

Kodları, ilk mesajımdaki kodlara uyarlayamadım. [TESEKKÜR]
Kullanıcı avatarı
umutburak
Yeni Başlamış
 
Adı Soyadı:umut ece
Kayıt: 04 Ağu 2010 00:19
Yaş: 43
İleti: 43
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul/Güngören

Cevap: [Çözüldü] ListView' de Satırların Arka Plânını Renkle

İleti#18)  fremen17 » 13 Tem 2012 12:04

ben şöyle yaptım:
userformu print screen ile alıp paintte istediğim renkleri ayarladım. 28x28 pixel gibi
sonra resmi bir imagelist nesnesine ekledim ve sonra userformun initalize kısmına aşağıdaki kodu yazdım;

Kod: Tümünü seç
For Each nesne In Form_Ana.Controls
      If TypeName(nesne) = "ListView2" Or TypeName(nesne) = "ListView" Or TypeName(nesne) = "ListView3" Then
         nesne.View = lvwReport
         nesne.Gridlines = True
         nesne.FullRowSelect = True
         nesne.CheckBoxes = True
         nesne.Picture = Form_Ana.ImageList1.ListImages(1).Picture
         nesne.PictureAlignment = 5
      End If
next
En son Murat OSMA tarafından, 13 Tem 2012 12:06 tarihinde değiştirildi, toplamda 1 değişiklik yapıldı.
Sebep: Hatalar belirtildi...
Kullanıcı avatarı
fremen17
 
Adı Soyadı:mesut abacı
Kayıt: 21 Kas 2009 21:25
Konum: ankara
Meslek: memur
Yaş: 35
İleti: 7
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: ankara/çankaya

Cevap: [Çözüldü] ListView' de Satırların Arka Plânını Renkle

İleti#19)  Murat OSMA » 13 Tem 2012 12:08

Merhaba Mesut Bey,

Lütfen mesajlarınızı forum kuralları 20. maddeye uygun olarak yazınız...

20.Mesaj yazarken büyük harf kullanmak bağırmak anlamına geleceği için kesinlikle mesajınızın tamamını büyük harf kullanarak yazmayınız. Türkçe yazım kurallarında; cümlede kelimelerin ilk harfi büyük olur, özel isimlerin baş harfi büyük olur, noktadan sonra başlayan her kelimenin baş harfi büyük olur, mesaj içindeki tüm harfler büyük yazılmaz yahut tümü küçük yazılmaz. Sitemiz Türkçe karakter desteklemektedir ve i, ç , ş , ğ gibi harfleri kullanmanızda hiç bir sakınca yoktur.


Yeni bir satır eklediğinizde yine PrintScreen ile ekran görüntüsünü alıp, Paintte ayarladıktan sonra mı ImageList'e yükleyip ListView'de görüntüleyeceksiniz ?

Bütün bunları her seferinde manuel mi yapıyorsunuz, yoksa otomatik yapabilen kodlarınız var mı ? [ilginc]
Var ise bizimle paylaşır mısınız ? Hatta dosyanızı görebilirsek sevinirim.

İyi günler...
Kullanıcı avatarı
Murat OSMA
Site Forum Yöneticisi
 
Adı Soyadı:Murat OSMA
Kayıt: 05 Arl 2008 00:34
Konum: İstanbul
Meslek: Excel & VBA Eğitmeni
Yaş: 33
İleti: 14311
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Bağcılar - İSTANBUL

Cevap: [Çözüldü] ListView' de Satırların Arka Plânını Renkle

İleti#20)  hakanian » 14 Tem 2012 01:05

Selamlar konuya katkıda bulunayım belki birilerin işini görür.
Benim VB6 da kullandığım kod aşağıda bir yabancı siteden bulmuştum.

Kod: Tümünü seç
Private Sub AltLVBackground(ListView1 As ListView, _
ByVal BackColorOne As OLE_COLOR, _
ByVal BackColorTwo As OLE_COLOR)
Dim lH As Long
Dim lSM As Byte
Dim picAlt As PictureBox
On Error Resume Next
With ListView1
If .View = lvwReport And .ListItems.Count Then
Set picAlt = Me.Controls.Add("VB.PictureBox", "picAlt")
lSM = .Parent.ScaleMode
.Parent.ScaleMode = vbTwips
.PictureAlignment = lvwTile
lH = .ListItems(1).Height
With picAlt
.BackColor = BackColorOne
.AutoRedraw = True
.Height = lH * 2
.BorderStyle = 0
.Width = 10 * Screen.TwipsPerPixelX
picAlt.Line (0, lH)-(.ScaleWidth, lH * 2), BackColorTwo, BF
Set ListView1.Picture = .Image
End With
Set picAlt = Nothing
Me.Controls.Remove "picAlt"
ListView1.Parent.ScaleMode = lSM
End If
End With
End Sub

Kullanıcı avatarı
hakanian
Siteye Alışmış
 
Adı Soyadı:Salih Keskin
Kayıt: 02 Tem 2009 22:34
Konum: Ankara
Meslek: Kamu
Yaş: 49
İleti: 191
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Ankara

Sonraki

Forum ListView

Online Kullanıcılar

Bu forumu görüntüleyenler: Kayıtlı kullanıcı yok ve 1 misafir

Bumerang - Yazarkafe