Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Количество видимых строк в Listview Добавлено: 07.03.09 01:50  

Автор вопроса:  Zahar | Web-сайт: partnerka-ru.info
Подскажите, как программно можно получить или подсчитать количество видимых строк в окне ListView?

Ответить

  Ответы Всего ответов: 6  

Номер ответа: 1
Автор ответа:
 Aston



ICQ: 214-179-991 

Вопросов: 42
Ответов: 272
 Профиль | | #1 Добавлено: 07.03.09 02:24
Не совсем понятен вопрос, знаю как показать - сколько строк всего в листвиев.
listview.ListItems.Count
А если ты имел ввиду что у тебя например 20 строк и видно 10, то тут ты узнаёшь размер шрифта - и за одно высоту каждой строки, узнаешь высоту твоего listview, высоту листа делишь на высоту одной строки вот тебе и сколько строк влезает.

Ответить

Номер ответа: 2
Автор ответа:
 Zahar



Вопросов: 91
Ответов: 67
 Web-сайт: partnerka-ru.info
 Профиль | | #2
Добавлено: 07.03.09 09:19
А как узнать высоту строки. Не уверен, что она ипрямо связана с размером шрифта.

Ответить

Номер ответа: 3
Автор ответа:
 Aston



ICQ: 214-179-991 

Вопросов: 42
Ответов: 272
 Профиль | | #3 Добавлено: 07.03.09 12:06
Я точно не знаю, но если у тебя будет один шрифт всегда, то засунь 5 строк и сделай размер листвиев, чтоб были видны только 5 строк, а дальше дело техники

Ответить

Номер ответа: 4
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #4
Добавлено: 09.03.09 14:02
Ветка MSDN с документацией ListView:
http://msdn.microsoft.com/en-us/library/bb774737(VS.85).aspx

А вот и решение вопроса в этой ветке:
http://msdn.microsoft.com/en-us/library/bb774917(VS.85).aspx

Пример на VB6. На форму положить ListView1 и вставить код:
  1. Option Explicit
  2.  
  3. Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
  4. Const LVM_GETCOUNTPERPAGE = 4136
  5.  
  6. Private Function VisibleItems(lvw As ListView) As Long
  7.     VisibleItems = SendMessage(lvw.hwnd, LVM_GETCOUNTPERPAGE, 0, 0)
  8. End Function
  9.  
  10. Private Sub Form_Load()
  11.     Dim i As Long
  12.     ListView1.ListItems.Clear
  13.     ListView1.View = lvwReport
  14.     ListView1.Height = 150 * Screen.TwipsPerPixelY
  15.     For i = 1 To 180
  16.         ListView1.ListItems.Add , , "Item " & Format(i, "000")
  17.     Next i
  18.     MsgBox VisibleItems(ListView1)
  19. End Sub

Ответить

Номер ответа: 5
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #5 Добавлено: 09.03.09 14:30
в .net все гораздо проще :-)
public System.Windows.Forms.View View { get; set; }
    Member of System.Windows.Forms.ListView

Summary:
Gets or sets how items are displayed in the control.

Ответить

Номер ответа: 6
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #6 Добавлено: 09.03.09 14:34
Сорри.. не то...

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам