Listview, который показывает непрочитанные сообщения жирным шрифтом и читать сообщения обычным шрифтом в C#
У меня есть представление списка, которое я использую для отображения SMS с моего модема GSM. Я читаю порт для сообщений, анализирую их и затем отображаю их. Формат, который я получаю, когда читаю сообщения:
+CMGL: 5,"REC READ","IA-612345","","2012/08/04 11:54:00+22"
Some text message
Код, который я использую для разбора:
public ShortMessageCollection ParseMessages(string input)
{
ShortMessageCollection messages = new ShortMessageCollection();
Regex r = new Regex(@"\+CMGL: (\d+),""(.+)"",""(.+)"",(.*),""(.+)""\r\n(.+)\r\n");
Match m = r.Match(input);
while (m.Success)
{
ShortMessage msg = new ShortMessage();
msg.Index = m.Groups[1].Value;
msg.Status = m.Groups[2].Value;
msg.Sender = m.Groups[3].Value;
msg.Alphabet = m.Groups[4].Value;
msg.Sent = m.Groups[5].Value;
msg.Message = m.Groups[6].Value;
messages.Add(msg);
m = m.NextMatch();
}
}
return messages;
Цикл, который я использую для добавления сообщений в список:
foreach (ShortMessage msg in objShortMessageCollection)
{
ListViewItem item = new ListViewItem(new string[] { msg.Sender, msg.Message, msg.Sent, msg.Index });
item.Tag = msg;
lvwMessages.Items.Insert(0, item);
}
Теперь мое требование заключается в том, чтобы при добавлении сообщений в просмотр списка непрочитанные сообщения (REC UNREAD) отображались жирным шрифтом, а сообщения READ - обычным шрифтом. Это возможно? Пожалуйста, дайте мне знать процедуру.
1 ответ
Решение
if (condition)
{
item.Font = New Font(item.Font, FontStyle.Bold);
}