2013-07-22 4 views
0

Есть ли способ автоматической проверки лимита символов в ListView, меняя цвет фона на оранжевый или какой-либо другой цвет для любого элемента, нарушающего лимит?ListView проверяет максимальный предел чата

Это происходит в случае импортируемого текста; после импорта он перемещается по всем элементам и проверяет, не нарушают ли пункты. Если они это сделают, они должны получить цвет фона Coral, но он не работает.

for (int i = 0; i < numpntr; i++) 
{ 
    int charlim = Encoding.UTF8.GetByteCount(listView1.Items[i].SubItems[1].Text); 

    if (charlim > bytecnt) 
    { 
     listView1.Items[i].BackColor = Color.Coral; 
    } 
} 
+1

Что такое 'numpntr'? Что такое 'bytecnt'? Что такое DataSource для вашего ListView (DataTable, список строк, список пользовательских классов ...)? –

+3

не работает, потому что 'SubItems [1]' не имеет такого длинного текста, как вы ожидаете. Вы должны отлаживать (шаг за шагом или добавлять часы), чтобы увидеть значения 'charlim'. Это сделает все ясно. –

+0

to Grant: numpntr: количество строк, bytecnt: лимит символов, мой источник данных - список строк, @KingKing: на самом деле это так, протестировало его более чем несколько раз, но результата нет. – Omarrrio

ответ

0

Изменить эту строку:

int charlim = Encoding.UTF8.GetByteCount(listView1.Items[i].SubItems[1].Text); 

To:

int charlim = Encoding.UTF8.GetByteCount(listView1.Items[i].Text); 

Это работа для меня.

+0

каждый элемент содержит минимум два столбца (другие - 3 и 4), поэтому я хочу только проверить подпункт [1], и, удалив его, он будет проверять только подэлемент [0] – Omarrrio

Смежные вопросы