动态更改标签文本的属性
本文关键字:属性 文本 标签 动态 | 更新日期: 2023-09-27 18:15:32
我有一个带有"野字符"的文本,比如"@ red text",其中@A是红色的符号。我需要替换@A与一些功能(或类似的东西),所以只要有@A在文本中,文本字体变成红色。我有几个颜色(@B, @C…),所以对于每一个我都需要做同样的事情,只是不同的颜色。
所以,"@ assome红色文本@BSome绿色文本"将分别被涂成红色和绿色(在So上找不到文本着色)。
任何想法?
谢谢。
我要做的是捕获标签的PreRender
事件并测试YourLabel.Text.Substring(0, 1)
,如果这是@号(@),那么有条件地测试(我会使用开关)第二个字符。然后,您可以获得没有@A
的字符串的其余部分,然后设置Label的文本,并根据属性字符进行格式化。
像这样:
protected void YourLabel_PreRender(object sender, EventArgs e)
{
string LabelText = YourLabel.Text;
bool NewForeColor = false;
if (LabelText.Left(0, 1) == "@")
{
switch(LabelText.Substring(1, 1))
{
case "A":
YourLabel.ForeColor = System.Drawing.Color.Magenta;
NewForeColor = true;
break;
case "B":
// you get the idea
break;
}
if (NewForeColor)
YourLabel.Text = LabelText.Substring(2, LabelText.Length - 2);
}
}
编辑:这是未经测试的代码,但您应该了解逻辑的总体思路