ListView设置选中项颜色变换
2015-12-21 12:06:31 访问(1926) 赞(0) 踩(0)
/// <summary>
/// ListView设置选中项颜色变换
/// </summary>
/// <param name="lv"></param>
/// <param name="idx"></param>
/// <param name="isSelected"></param>
public void ListViewSetItemSelectedColor(ListView lv, int idx, bool isSelected)
{
if (idx < 0)
return;
int iCount = lv.Items.Count;
if (iCount == 0)
return;
if (idx >= iCount)
return;
System.Drawing.Color ForeColor = System.Drawing.SystemColors.WindowText;
System.Drawing.Color BackColor = System.Drawing.SystemColors.Window;
System.Drawing.Color CompareColor = System.Drawing.SystemColors.Window;
if (isSelected)
{
ForeColor = System.Drawing.SystemColors.Window;
CompareColor = System.Drawing.SystemColors.WindowText;
BackColor = System.Drawing.SystemColors.Highlight;
}
ListViewItem lvItem = lv.Items[idx];
if (lvItem.UseItemStyleForSubItems)
{
lvItem.ForeColor = ForeColor;
lvItem.BackColor = BackColor;
}
else
{
int columnCount = lv.Columns.Count;
for (int i = 0; i < columnCount; ++i)
{
// if (lvItem.SubItems[i].ForeColor == CompareColor) //
if (ColorCompare(lvItem.SubItems[i].ForeColor, CompareColor))
{
lvItem.SubItems[i].ForeColor = ForeColor;
}
lvItem.SubItems[i].BackColor = BackColor;
}
}
}
/// <summary>
/// 颜色值比较
/// </summary>
/// <param name="one"></param>
/// <param name="two"></param>
/// <returns></returns>
public bool ColorCompare(System.Drawing.Color one,System.Drawing.Color two)
{
if (one == null)
{
if (two == null)
return true;
else
return false;
}
if (two == null)
return false;
if (one.A != two.A)
return false;
if (one.R != two.R)
return false;
if (one.G != two.G)
return false;
if (one.B != two.B)
return false;
return true;
}
标签:
ListView设置选中项颜色变换 


上一条:
下一条:
相关评论
发表评论