Makale numarası: 179988 - Son Gözden Geçirme: 24 Şubat 2004 Salı - Gözden geçirme: 3.0

Düzeltme: ListView'ın ColumnHeader genişlik özelliği sorunu

Sistem İpucuBu makale, kullandığınızdan farklı bir işletim sistemine yöneliktir. Sizinle ilgili olmayabilecek makale içeriği devre dışı bırakıldı.

Bu Sayfada

Hepsini aç | Hepsini kapa

Belirtiler

Bir ColumnHeader genişliğini programsal olarak ayarladığınızda, sütun genişliğini gerçekten beklenenden daha büyük görünebilir. Böylece, daha sonra geri yükleyebilirsiniz, ColumnHeader genişliği ayarları kaydetmek istediğinizde, bu sorun sunar.

Neden

Dahili olarak, programlı olarak değiştirildiğinde bir ColumnHeader genişliğini bazı önceden belirlenmiş bir sabit ile boşluklarla. ColumnHeader genişliği kullanıcı arabirimi aracılığıyla değiştirdiyseniz, bu doldurma etkin değil.

Çözüm

Bu soruna geçici bir çözüm bulmak için <a0></a0>, ayarlayabilir veya ColumnHeader LVM_SETCOLUMNWIDTH veya LVM_GETCOLUMNWIDTH iletileriyle SendMessage API işlevini kullanarak bir genişlik dönün.

Sabit ve işlevi bildirimleri aşağıdaki gibidir:
     Declare Function SendMessage Lib "user32" Alias "SendMessageA" ( _
          ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, _
          ByVal lParam As Long) As Long

     Const LVM_FIRST = &H1000
     Const LVM_GETCOLUMNWIDTH = LVM_FIRST + 29
     Const LVM_SETCOLUMNWIDTH = LVM_FIRST + 30
				

Iletinin LVM_SETCOLUMNWIDTH kullanarak bir Columnheader genişliğini ayarlamak için <a0></a0>, the wParam ve lParam olarak yeni bir genişlik (0 ile başlayan) bir sütun dizini sağlar. Örneğin, aşağıdaki ifadeyi 150 için ListView1, (dizini 1) ikinci sütunun genişliğini ayarlar:
    SendMessage ListView1.hWnd, LVM_SETCOLUMNWIDTH, 1, 150
				

Iletinin LVM_GETCOLUMNWIDTH kullanarak bir Columnheader genişliğini almak için <a0></a0>, (0 ile başlayan) bir sütun dizini wParam sağlar. The lParam kullanılmaz ve 0 olarak ayarlayın. Örneğin, aşağıdaki ifadeyi ListView1, (dizini 1) ikinci sütunun genişliğini verir:
    Dim LVWidth as Long
    LVWidth = SendMessage (ListView1.hWnd, LVM_GETCOLUMNWIDTH, 1, 0)
				

Durum

Microsoft bu hatanın bu makalenin başında listelenen Microsoft ürünlerinde bulunduğunu onaylamıştır. Bu hata, Visual Basic 6. 0 ' giderilmiştir.

Daha fazla bilgi

Davranışı yeniden oluşturma adımları

  1. Yeni bir proje başlatın. Varsayılan olarak, Form1 oluşturulur.
  2. Proje menüsünde Bileşenleri'ni tıklatın ve denetimi "Microsoft Windows ortak denetimler 5.0."
  3. ListView denetimlerdir ve iki CommandButtons Form1'e ekleyin.
  4. Command1 <a1>Caption</a1> özelliği "Genişlik Kaydet" ve resim yazısını değiştirmek için "Geri yükleme genişliği" Command2 özelliği
  5. Form1'e aşağıdaki kodu ekleyin:
          Dim iWidth1 As Long
          Dim iWidth2 As Long
    
          Private Sub Command1_Click()
             'Save the current column widths
             iWidth1 = ListView1.ColumnHeaders(1).Width
             iWidth2 = ListView1.ColumnHeaders(2).Width
          End Sub
    
          Private Sub Command2_Click()
             'Restore the column widths
             ListView1.ColumnHeaders(1).Width = iWidth1
             ListView1.ColumnHeaders(2).Width = iWidth2
          End Sub
    
          Private Sub Form_Load()
             'Add 2 column headers to ListView1 and specify an
             'initial width of 1000 for both
             With ListView1
                .View = lvwReport
                .ColumnHeaders.Add , , "Column 1", 1000
                .ColumnHeaders.Add , , "Column 2", 1000
             End With
          End Sub
    
    						
  6. Proje çalıştırmak için F5 tuşuna basın.
  7. Imleci kullanarak ListView denetimini ilk sütunu yeniden boyutlandırın.
  8. "Genişlik Kaydet" seçeneğini tıklatın ve sonra "Geri yükleme genişliği" ve ilk ColumnHeader genişliğini belirttiğiniz ayarından daha büyük bir not'ı tıklatın.

Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
Anahtar Kelimeler: 
kbmt kbbug kbfix kbgrpdsvb KB179988 KbMttr
Otomatik TercümeOtomatik Tercüme
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:179988  (http://support.microsoft.com/kb/179988/en-us/ )
Retired KB ArticleKullanım Dışı Bilgi Bankası İçeriği Yasal Uyarı
Bu makale, Microsoft'un artık destek sağlamadığı ürünler ile ilgili olarak yazılmıştır. Bu nedenle, bu makale "olduğu gibi" sağlanmıştır ve bundan sonra güncelleştirilmeyecektir.