在文本框/列表框中以粗体显示一组特定行

时间:2014-02-27 06:52:32

标签: c# winforms

我需要在C#中以textbox / listbox粗体创建一个特定的行。网,而不是整个盒子内容确定。

以下是示例,请考虑这些全部显示在文本/列表框中,

  

你好   的你好
  你好吗

你可以注意到hello是粗体,这是我需要实现的。 请帮助我实现这一目标。 提前谢谢。

3 个答案:

答案 0 :(得分:2)

这是解决方案......

Windows窗体中唯一支持为每个项设置Font属性的列表类型控件是ListView。试试这个:

  1. 在表单上放置ListView。将其View属性设置为Details

  2. 编辑ListView Columns集合:添加一列;设置Column的宽度,使其内容清晰可见。

  3. // 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

MSDN-Example