当前位置:  开发笔记 > 编程语言 > 正文

C#ListView详细信息,突出显示单个单元格

如何解决《C#ListView详细信息,突出显示单个单元格》经验,为你挑选了1个好方法。

我在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();
}

Charlie.. 14

您可以在没有所有者的情况下绘制列表:

// 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,否则将忽略您的颜色更改.

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



1> Charlie..:

您可以在没有所有者的情况下绘制列表:

// 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,否则将忽略您的颜色更改.

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

推荐阅读
mobiledu2402851323
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有