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中定义自绘方便多了
分享到:
相关推荐
总的来说,自定义颜色ListBox的实现涉及到了面向对象编程、控件继承、事件处理、数据绑定和图形绘制等多个C#核心概念,是提升C#编程技能的一个好实践。通过这样的练习,开发者不仅可以掌握C#的基础,还能锻炼解决...
本教程将详细讲解如何实现ListBox控件每行颜色的改变,以增强界面的可读性和用户体验。 首先,我们需要理解ListBox的基本用法。在MFC中,ListBox通常通过CListBox类进行操作。我们可以在OnInitDialog()函数中初始化...
例如,如果想改变ListBox项的背景色和字体颜色,可以遍历Items集合,对每个项进行绘制。 ```csharp foreach (var item in Items) { e.Graphics.DrawString(item.ToString(), Font, new SolidBrush(Color.Black), ...
此外,`ListBox`还提供了`DrawItem`和`MeasureItem`事件,用于自定义绘制列表项,实现更复杂的设计需求,如改变字体、颜色等。 标签`ColorListBox`可能指的是具有颜色显示功能的扩展`ListBox`。这通常是通过自定义...
本主题将深入探讨如何实现“C# WinForm ListView控件美化”,包括重画列头、选中时的颜色改变以及隔行换色功能。 首先,让我们了解ListView控件的基本用法。ListView控件有多种视图模式,如List、SmallIcon、...
### WPF/C#中ListView与ListBox的背景样式及选中行样式详解 #### 一、概述 在WPF(Windows Presentation Foundation)应用开发中,`ListView`和`ListBox`是两个非常常用的数据展示控件。它们能够以列表的形式展示...
在C# WinForm应用开发中,ListBox控件是一种常见的组件,用于显示一组可选择的项。这个控件在用户界面设计中起到了展示列表数据、让用户进行单选或多选的重要作用。"C# Winform控件listbox用法新实例Imageshow"这个...
ListBox控件在C#编程中是一个非常常见的组件,主要用于展示一系列可选的项目。它通常用于用户界面,让用户能够通过单击或使用上下箭头键来选择一个或多个选项。本教程将深入探讨ListBox的基本使用、操作方法以及相关...
7. **自定义Item外观**:除了控件整体的重绘,还可以针对每个ListBox项进行定制。例如,可以通过覆盖OnDrawItem或OnMeasureItem事件来改变选中项的样式、添加图标或者改变文字样式。 8. **性能优化**:在处理大量...
在这个案例中,我们可能需要创建一个DoubleAnimation来改变Item的透明度和位置,模拟“飞入”和“飞出”的效果。 1. **透明度动画(OpacityAnimation)**:当新的列表项添加到ListBox时,我们可以设置一个动画,使...
CRect rect(pDIS->rcItem); CDC dc; dc.Attach(pDIS->hDC); // 准备绘制环境,例如背景、边框等 ... // 使用DrawText绘制文本,注意添加DT_WORDBREAK标志 CString strItem = GetItemText(pDIS->itemID); ...
1. **创建自定义控件类**:在C#中,可以创建一个新的类,如`AutoWrapListBox`,并让它继承自`ListBox`。 ```csharp public class AutoWrapListBox : ListBox { // 在这里添加新的属性和方法 } ``` 2. **重写`...
最后,当用户选择或鼠标悬停在ListView项上时,ViewModel可以通过通知机制(如INotifyPropertyChanged接口)更新这两个属性的值,从而改变背景颜色。 总结来说,通过自定义WPF ListView的ControlTemplate,我们可以...
`CheckedListBox` 控件类似于`ListBox` 控件,但每个项目都附有一个复选框。这使得用户可以选择多项。 **特点与功能** - **多选**:用户可以选择多项。 - **选中项**:通过`CheckedItems`属性获取所有被选中的项。...
- **列表框(ListBox)**:显示多个选项供用户选择。 - 方法示例: - `Items.Add()`:添加项。 - `Items.RemoveAt()`:移除指定索引的项。 - 属性示例: - `SelectedIndex`:当前选中项的索引。 - `Count`:项...
我们可以在这个方法中添加自定义逻辑,例如根据项目索引改变背景颜色,或者实现带状显示。 下面是如何实现带状和颜色分隔的步骤: 1. 创建一个新的`ListBox`子类,例如`CustomListBox`。 2. 重写`...
《C#全能速查宝典》共分为8章,分别介绍了C#语言基础、Windows窗体及常用控件、Windows高级控件、控件公共属性、方法及事件、数据库开发、文件、数据流与注册表、GDI+绘图技术和C#高级编程,共包含562个C#编程中常用...
总的来说,“C# TextBox模糊查询和输入提示”的实现涉及对TextBox控件的事件监听、文本颜色和内容的动态管理,以及实时的数据过滤和展示。通过以上代码示例,你应该能够理解并实现这个功能。在实际应用中,还需要...
例如,`listBox1.Items.Add("Item1")`可以添加一个新项。此外,`Items.Count`属性可获取项的数量,`Items[index]`则可以访问指定索引的项。 3. **数据绑定**:ListBox支持数据绑定,可以将数据源(如数组、列表或...
C#(WINFORM)学习 一、 C#基础 基础 类型和变量 类型和变量 类型 C# 支持两种类型:“值类型”和“引用类型”。值类型包括简单类型(如 char、int 和 float 等)、枚举类型和结构类型。引用类型包括类 (Class)类 ...