C# listBox字体颜色
时间: 2023-11-17 22:08:53 浏览: 277
要改变 C# listBox 中的字体颜色,可以通过设置 DrawMode 属性为 OwnerDrawFixed,并在 DrawItem 事件中自定义绘制每个项的外观。具体实现可以参考以下代码:
private void listBox1_DrawItem(object sender, DrawItemEventArgs e)
{
e.DrawBackground();
bool isSelected = ((e.State & DrawItemState.Selected) == DrawItemState.Selected);
int index = e.Index;
if (index >= 0 && index < listBox1.Items.Count)
{
string text = listBox1.Items[index].ToString();
Graphics g = e.Graphics;
// 根据选中状态设置字体颜色
Color color = isSelected ? Color.White : Color.Black;
// 绘制文本
g.DrawString(text, e.Font, new SolidBrush(color), new PointF(e.Bounds.X, e.Bounds.Y));
}
e.DrawFocusRectangle();
}
相关问题
C# listbox显示最后一行
要在C#的listbox中显示最后一行,可以使用以下代码:
```
listBox1.TopIndex = listBox1.Items.Count - 1;
```
这将使listbox滚动到最后一行并显示出来。\[1\]
#### 引用[.reference_title]
- *1* [C# 滚动内容显示到最后一行](https://blog.csdn.net/weixin_45499836/article/details/115173436)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [在C#中控制ListBox某一行的字体颜色](https://blog.csdn.net/Andrewniu/article/details/92840586)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [C# 动态更改ListBox某一行的颜色](https://blog.csdn.net/u010205478/article/details/80513048)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
如何在C#中动态更改ListBox项目的字体颜色?
在C#中,动态更改 `ListBox` 项目的字体颜色可以通过访问每个 `ListBoxItem` 的内部 `TextElement` 或 `Label` 来完成。以下是使用 WinForms 和 WPF 的例子:
**WinForms:**
```csharp
foreach (var item in listBox.Items)
{
if (item is ListBoxItem listBoxItem)
{
var label = listBoxItem.FindControl("yourLabelName") as Label; // 假设你的项目里有个名为 "yourLabelName" 的 Label
if (label != null)
{
label.ForeColor = Color.YourDesiredColor; // 替换为你想设置的颜色
}
}
}
```
请记得替换 `yourLabelName` 为实际的标签控件名称,并将 `Color.YourDesiredColor` 替换成所需的颜色。
**WPF:**
```csharp
foreach (var item in listBox.SelectedItems)
{
var textBlock = item.Content as TextBlock;
if (textBlock != null)
{
textBlock.Foreground = Brushes.YourDesiredColor; // 替换为你想设置的颜色
}
}
```
这里假设你的 `ListBoxItem` 内部有一个 `TextBlock` 控件作为内容。同样,将 `Brushes.YourDesiredColor` 更改为所需的颜色。
阅读全文