c#中如何设置listbox各选项中的字体
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#中如何设置listbox各选项中的字体相关的知识,希望对你有一定的参考价值。
像这样
不确定你是用winform 还是web。。我是用winform做出来的!!
1.在load 加载初始数据!
listBox1.Items.Add("常规");
listBox1.Items.Add("斜体");
listBox1.Items.Add("粗体");
listBox1.Items.Add("粗体斜体");
//这句话很关键关键,如果没这句,那么DrawItem是不生效的
listBox1.DrawMode = DrawMode.OwnerDrawFixed;
2.实现DrawItem事件。。
private void listBox1_DrawItem(object sender, DrawItemEventArgs e)e.DrawBackground();
if (e.Index > -1)
Font f = null;
switch (e.Index)
case 0:
f = new Font("宋体", 9, FontStyle.Regular);
e.Graphics.DrawString(Convert.ToString(listBox1.Items[e.Index]), f, Brushes.Red, e.Bounds);
break;
case 1:
f = new Font("宋体", 9, FontStyle.Italic);
e.Graphics.DrawString(Convert.ToString(listBox1.Items[e.Index]), f, Brushes.Yellow, e.Bounds);
break;
case 2:
f = new Font("宋体", 9, FontStyle.Bold);
e.Graphics.DrawString(Convert.ToString(listBox1.Items[e.Index]), f, Brushes.SteelBlue, e.Bounds);
break;
case 3:
f = new Font("宋体", 9, FontStyle.Italic | FontStyle.Bold);
e.Graphics.DrawString(Convert.ToString(listBox1.Items[e.Index]), f, Brushes.Gray, e.Bounds);
break;
3.最终效果如下:
这个花了我些时间,希望对你有帮助,有问题可以在讨论,加油!!!
那怎么重绘呢
如何使 SplitContainers 中的 ListBoxes 正确调整大小?
【中文标题】如何使 SplitContainers 中的 ListBoxes 正确调整大小?【英文标题】:How to make ListBoxes in SplitContainers resize properly? 【发布时间】:2018-12-06 20:00:11 【问题描述】:要重现此问题,
新建一个 WinForms 项目 使用 WinForms 设计器,添加SplitContainer
将其方向设置为水平
将其停靠栏设置为填充
在SplitContainer
的每个容器中,添加ListBox
将其停靠栏设置为填充
增大其字体大小,以便更清楚地观察相关行为
向列表框中添加一些项目
完成这些步骤后,设计器应如下所示:
现在运行程序 调整SplitContainer
中的容器大小
您应该看到,对于某些大小的上部容器,两个列表框之间会有一个空格(对不起,我的鼠标写得不好)。
对于其他尺寸的上部容器,几乎没有空间。
我假设这是因为列表框不能显示“半个项目”,所以它会减小它的大小以不显示半个项目。这是真的吗?
我想到了以下解决方案:
限制拆分容器的可调整大小,因此用户只能在“步长”中调整大小,其中每个步长等于列表框中一个项目的高度。
但是,我不太喜欢这样,因为当项目高度很大时,用户体验会感觉不自然(至少对我而言)。
我怎样才能使列表框正确调整大小(即不留空隙)?
【问题讨论】:
【参考方案1】:您可以将IntegralHeight
属性设置为false
,以达到想要的效果。
https://msdn.microsoft.com/en-us/library/system.windows.forms.listbox.integralheight(v=vs.110).aspx
获取或设置一个值,该值指示控件是否应调整大小以避免显示部分项。
【讨论】:
以上是关于c#中如何设置listbox各选项中的字体的主要内容,如果未能解决你的问题,请参考以下文章
如何使 SplitContainers 中的 ListBoxes 正确调整大小?