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

问题描述 投票:0回答:1

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

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++;
}

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

c# winforms stringbuilder
1个回答
1
投票

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

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

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

选项3:使用四种不同的标签创建用户控件,这样您就可以控制每个标签的颜色/字体/外观,从长远来看,这将为您提供最大的灵活性。

© www.soinside.com 2019 - 2024. All rights reserved.