我需要在C#中以textbox / listbox粗体创建一个特定的行。网,而不是整个盒子内容确定。
以下是示例,请考虑这些全部显示在文本/列表框中,
你好 的你好
你好吗
你可以注意到hello是粗体,这是我需要实现的。 请帮助我实现这一目标。 提前谢谢。
答案 0 :(得分:2)
这是解决方案......
Windows窗体中唯一支持为每个项设置Font
属性的列表类型控件是ListView
。试试这个:
在表单上放置ListView
。将其View
属性设置为Details
。
编辑ListView Columns
集合:添加一列;设置Column的宽度,使其内容清晰可见。
// define two font-faces, one bold
private Font font1 = new Font("Arial",9.0F, FontStyle.Regular);
private Font font2 = new Font("Arial",9.0F, FontStyle.Bold);
// demonstrate adding Items to ListView
private void AddListViewItems()
{
// add ten Items
for (int i = 0; i < 10; i++)
{
var lvItem = new ListViewItem("item " + i.ToString());
// make every other item use the bold font-face
lvItem.Font = (i % 2 == 0) ? font1 : font2;
listView1.Items.Add(lvItem);
}
}
答案 1 :(得分:1)
您可以使用Font类来实现此目的。
有一个Font类的构造函数,它接受以下3个属性:
1.FontFamily :如果需要,您可以指定任何特定的字体系列,否则只提供当前的TextBox字体系列。
2.Font Size 如果需要,您可以将任何特定字体sie指定为float
号码,否则只提供当前TextBox字体大小。
3.Font Style:基本上有不同的字体样式可用。
像普通,粗体,斜体,下划线,罢工。
您需要发送FontStyle.Bold
以使您的文字大胆。
来自MSDN:
定义文本的特定格式,包括字体,大小和 样式属性。这个类不能被继承。
试试这个:
Font font = new Font(textBox1.Font.FontFamily, textBox1.Font.Size, FontStyle.Bold);
textBox1.Font = font;
编辑:正如您在下面的评论中所述,如果您想将文字的唯一部分设为BOLD
,则TextBox
来自@Stephan
内容:
但在ListBox
中,您可以使用DrawItem
事件。
见这里:DrawEvent
作为替代方案您可以使用RichTextBox
解决方案2:在RichTextBox
如果您使用的是RichTextBox
控件,则可以使用SelectionFont
属性仅将选定的文本设置为粗体(或您要应用的任何字体)
Font font = new Font(richTextBox1.Font.FontFamily, richTextBox1.Font.Size, FontStyle.Bold);
richTextBox1.SelectionFont = font;
答案 2 :(得分:1)
如果您想使用ListBox
,可以通过自己绘制项目来实现。
将DrawMode
设置为OwnerDrawFixed
并处理DrawItem
- 事件。您可以在此处指定使用的Font
。如另一个答案中所述,您可以设置FontStyle.Bold