如何突出显示作为对象属性的字符串?

时间:2019-04-06 08:54:14

标签: c# winforms stringbuilder

我有一个具有四个属性(颜色,型号,里程,年份)的汽车课,我从四个文本框中获取了这些属性。然后,我将这些属性分配给car类的新对象,并将此新对象分配给car类中的对象数组。我需要能够突出显示Mileage属性,但是我在这样的字符串生成器中输出:

private void button1_Click(object sender, EventArgs e)
{
    carColourIN = colour.Text;
    carModelIN = model.Text;
    carMileageIN = Double.Parse(mileage.Text);
    carYearIN = Int32.Parse(year.Text);

    Car user = new Car(carColourIN, carModelIN, carMileageIN, carYearIN);

    Car.vehicles[i] = user;
    StringBuilder sb = new StringBuilder();


    sb.Append("Colour: " + Car.vehicles[i].CarColour + "\nModel: " + Car.vehicles[i].CarModel + "\nMileage: " + Car.vehicles[i].CarMileage
                    + "\nYear: " + Car.vehicles[i].CarYear + "\n\n");

    displayLabel.Text = sb.ToString();
    i++;
}

我将如何在附加的字符串构建器中突出显示Mileage属性,以便该文本的特定部分的背景是不同的颜色,或者实际的文本是

1 个答案:

答案 0 :(得分:1)

我看到了几种不同的选择。这个问题Multiple Colors in C# Label的答案解释了前两个选项。

选项1:不要使用StringBuilder,而要使用富文本框。然后遍历属性,并使用提供的链接中的rtb_AppendText函数一次添加一个属性。

选项2::创建自定义标签控件,并覆盖OnPaint方法。在OnPaint方法中,您可以使用MeasureText和DrawString来实现您的目标。

选项3:创建带有四个不同标签的用户控件,这样您可以控制每个标签的颜色/字体/外观,并从长远来看给您最大的灵活性。