做項目的時候,客戶的查詢結果中要在listvIEw中亮顯查詢關鍵字.在網上找了半天,沒有合適的代碼.
於是就自己琢磨了一下.貼出代碼,希望對大家有所幫助.
注意事項:
一定要把listvIEw的OwnerDraw屬性設置為True(默認是False)。
當設置OwnerDraw = True後,FullRowSelect 、HideSelection 屬性好象實效了。
添加DrawColumnHeader事件,繪制列標頭用。
添加DrawSubItem事件,繪子項頭用。
代碼如下:
private void lvKeyPerson_DrawColumnHeader(object sender, DrawListVIEwColumnHeaderEventArgs e)
{
e.DrawBackground();
e.DrawText();
}
private void lvKeyPerson_DrawSubItem(object sender, DrawListVIEwSubItemEventArgs e)
{
e.DrawBackground();
//判斷Subitem中是否存在關鍵字
if (txtContent.Text.Trim().Length > 0 && e.SubItem.Text.IndexOf(txtContent.Text.Trim()) >= 0)
{
e.SubItem.BackColor = Color.Pink; //設置背景色為粉紅色
}
else
{
e.SubItem.ForeColor = Color.Black; //設置字體為紅色
}
e.DrawText();
}
如下圖所示: