`
poson
  • 浏览: 361500 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

怎么改变listbox的item颜色(C#)

阅读更多

 C#

(1)需要先设置属性:

该事件由所有者描述的 ListBox 使用。仅当 DrawMode 属性设置为 DrawMode.OwnerDrawFixed

DrawMode.OwnerDrawVariable 时,才引发该事件。可以使用该事件来执行在 ListBox

中绘制项所需的任务。如果具有大小可变的项(当 DrawMode 属性设置为 DrawMode.OwnerDrawVariable

时),在绘制项前,引发 MeasureItem 事件。可以为 MeasureItem 事件创建事件处理程序,

以在 DrawItem 事件的事件处理程序中指定要绘制的项的大小。

有关处理事件的更多信息,请参见 使用事件

(2)重写listbox的drawitem事件

private void listBox1_DrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e)
{
   // Set the DrawMode property to draw fixed sized items.
   listBox1.DrawMode = DrawMode.OwnerDrawFixed;
   // Draw the background of the ListBox control for each item.
   e.DrawBackground();
   // Define the default color of the brush as black.
   Brush myBrush = Brushes.Black;

   // Determine the color of the brush to draw each item based on the index of the item to draw.
   switch (e.Index)
   {
      case 0:
         myBrush = Brushes.Red;
         break;
      case 1:
         myBrush = Brushes.Orange;
         break;
      case 2:
         myBrush = Brushes.Purple;
         break;
   }

   // Draw the current item text based on the current Font and the custom brush settings.
   e.Graphics.DrawString(listBox1.Items[e.Index].ToString(), e.Font, myBrush,e.Bounds,StringFormat.GenericDefault);
   // If the ListBox has focus, draw a focus rectangle around the selected item.
   e.DrawFocusRectangle();
}

(3)从这个例子,我们发现在c#下面重画控件,比在vc++6.0中定义自绘方便多了

分享到:
评论

相关推荐

    C# item自定义颜色ListBox实现

    总的来说,自定义颜色ListBox的实现涉及到了面向对象编程、控件继承、事件处理、数据绑定和图形绘制等多个C#核心概念,是提升C#编程技能的一个好实践。通过这样的练习,开发者不仅可以掌握C#的基础,还能锻炼解决...

    MFC 实现ListBox每行颜色的改变

    本教程将详细讲解如何实现ListBox控件每行颜色的改变,以增强界面的可读性和用户体验。 首先,我们需要理解ListBox的基本用法。在MFC中,ListBox通常通过CListBox类进行操作。我们可以在OnInitDialog()函数中初始化...

    C#277重绘ListBox控件 源代码

    例如,如果想改变ListBox项的背景色和字体颜色,可以遍历Items集合,对每个项进行绘制。 ```csharp foreach (var item in Items) { e.Graphics.DrawString(item.ToString(), Font, new SolidBrush(Color.Black), ...

    c# ListBox控制項

    此外,`ListBox`还提供了`DrawItem`和`MeasureItem`事件,用于自定义绘制列表项,实现更复杂的设计需求,如改变字体、颜色等。 标签`ColorListBox`可能指的是具有颜色显示功能的扩展`ListBox`。这通常是通过自定义...

    C#-winform-listview控件美化

    本主题将深入探讨如何实现“C# WinForm ListView控件美化”,包括重画列头、选中时的颜色改变以及隔行换色功能。 首先,让我们了解ListView控件的基本用法。ListView控件有多种视图模式,如List、SmallIcon、...

    ListView、ListBox背景样式

    ### WPF/C#中ListView与ListBox的背景样式及选中行样式详解 #### 一、概述 在WPF(Windows Presentation Foundation)应用开发中,`ListView`和`ListBox`是两个非常常用的数据展示控件。它们能够以列表的形式展示...

    C#Winform控件listbox用法新实例Imageshow

    在C# WinForm应用开发中,ListBox控件是一种常见的组件,用于显示一组可选择的项。这个控件在用户界面设计中起到了展示列表数据、让用户进行单选或多选的重要作用。"C# Winform控件listbox用法新实例Imageshow"这个...

    C#的ListBox

    ListBox控件在C#编程中是一个非常常见的组件,主要用于展示一系列可选的项目。它通常用于用户界面,让用户能够通过单击或使用上下箭头键来选择一个或多个选项。本教程将深入探讨ListBox的基本使用、操作方法以及相关...

    C#控件之重绘ListBox控件源码.rar

    7. **自定义Item外观**:除了控件整体的重绘,还可以针对每个ListBox项进行定制。例如,可以通过覆盖OnDrawItem或OnMeasureItem事件来改变选中项的样式、添加图标或者改变文字样式。 8. **性能优化**:在处理大量...

    WPF实现让ListBox的Item飞入飞出特效

    在这个案例中,我们可能需要创建一个DoubleAnimation来改变Item的透明度和位置,模拟“飞入”和“飞出”的效果。 1. **透明度动画(OpacityAnimation)**:当新的列表项添加到ListBox时,我们可以设置一个动画,使...

    VC Listbox自绘,实现不同高度以及自动换行

    CRect rect(pDIS->rcItem); CDC dc; dc.Attach(pDIS->hDC); // 准备绘制环境,例如背景、边框等 ... // 使用DrawText绘制文本,注意添加DT_WORDBREAK标志 CString strItem = GetItemText(pDIS->itemID); ...

    ListBox的自绘

    1. **创建自定义控件类**:在C#中,可以创建一个新的类,如`AutoWrapListBox`,并让它继承自`ListBox`。 ```csharp public class AutoWrapListBox : ListBox { // 在这里添加新的属性和方法 } ``` 2. **重写`...

    WPF ListView 选择和鼠标移上去行背景颜色的去除与更改

    最后,当用户选择或鼠标悬停在ListView项上时,ViewModel可以通过通知机制(如INotifyPropertyChanged接口)更新这两个属性的值,从而改变背景颜色。 总结来说,通过自定义WPF ListView的ControlTemplate,我们可以...

    C#控件查询手册 (超详细)

    `CheckedListBox` 控件类似于`ListBox` 控件,但每个项目都附有一个复选框。这使得用户可以选择多项。 **特点与功能** - **多选**:用户可以选择多项。 - **选中项**:通过`CheckedItems`属性获取所有被选中的项。...

    C# 帮助文档.pdf

    - **列表框(ListBox)**:显示多个选项供用户选择。 - 方法示例: - `Items.Add()`:添加项。 - `Items.RemoveAt()`:移除指定索引的项。 - 属性示例: - `SelectedIndex`:当前选中项的索引。 - `Count`:项...

    自定义WPF ListBox,在代码中具有带状和着色

    我们可以在这个方法中添加自定义逻辑,例如根据项目索引改变背景颜色,或者实现带状显示。 下面是如何实现带状和颜色分隔的步骤: 1. 创建一个新的`ListBox`子类,例如`CustomListBox`。 2. 重写`...

    C#全能速查宝典

    《C#全能速查宝典》共分为8章,分别介绍了C#语言基础、Windows窗体及常用控件、Windows高级控件、控件公共属性、方法及事件、数据库开发、文件、数据流与注册表、GDI+绘图技术和C#高级编程,共包含562个C#编程中常用...

    C# TextBox模糊查询和输入提示

    总的来说,“C# TextBox模糊查询和输入提示”的实现涉及对TextBox控件的事件监听、文本颜色和内容的动态管理,以及实时的数据过滤和展示。通过以上代码示例,你应该能够理解并实现这个功能。在实际应用中,还需要...

    ListBoxQuestionDemo

    例如,`listBox1.Items.Add("Item1")`可以添加一个新项。此外,`Items.Count`属性可获取项的数量,`Items[index]`则可以访问指定索引的项。 3. **数据绑定**:ListBox支持数据绑定,可以将数据源(如数组、列表或...

    C# for CSDN 乱七八糟的看不懂

    C#(WINFORM)学习 一、 C#基础 基础 类型和变量 类型和变量 类型 C# 支持两种类型:“值类型”和“引用类型”。值类型包括简单类型(如 char、int 和 float 等)、枚举类型和结构类型。引用类型包括类 (Class)类 ...

Global site tag (gtag.js) - Google Analytics