C#ListView Detail,突出显示单个单元格

前端之家收集整理的这篇文章主要介绍了C#ListView Detail,突出显示单个单元格前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在C#中使用ListView来创建一个网格.我想找出一种能够以编程方式突出显示特定单元格的方法.我只需要突出显示一个单元格.

我已经尝试所有者绘制的子项,但使用下面的代码,我得到突出显示的单元格,但没有文字!有没有什么想法如何让这个工作?谢谢你的帮助.

//m_PC.Location is the X,Y coordinates of the highlighted cell.


void listView1_DrawSubItem(object sender,DrawListViewSubItemEventArgs e)
{
    if ((e.ItemIndex == m_PC.Location.Y) && (e.Item.SubItems.IndexOf(e.SubItem) == m_PC.Location.X))
        e.SubItem.BackColor = Color.Blue;
    else
        e.SubItem.BackColor = Color.White;
    e.DrawBackground();
    e.DrawText();
}

解决方法

您可以在没有所有者绘制列表的情况下执行此操作:
// create a new list item with a subitem that has white text on a blue background
ListViewItem lvi = new ListViewItem( "item text" );
lvi.UseItemStyleForSubItems = false;
lvi.SubItems.Add( new ListViewItem.ListViewSubItem( lvi,"subitem",Color.White,Color.Blue,lvi.Font ) );

ListViewSubItem构造函数的Color参数控制子项的前景色和背景色.这里要做的关键是在列表项中将UseItemStyleForSubItems设置为False,否则您的颜色更改将被忽略.

我认为你的所有者绘制解决方案也会有效果,但是当您将背景更改为蓝色时,您必须记住更改文本(前景)颜色,否则文本将很难看到.

猜你在找的C&C++相关文章