Public Void Show()
{
label1.Text="My Text";
string varTest=Label1.Text;
MessageBox.Show(varText);
}
我想隐藏 Label1 文本的"我的",但是当分配给 varTest 时,我想显示完整的文本表示"我的文本">
实际上这个问题还没有真正得到回答,因为没有人提出一个解决方案,其中标签的一部分被隐藏了。但是,这(当然(是可能的。您只需派生 WinForms 标签并更改其绘制方式:
public class SpecialLabel : Label
{
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
if (!Text.StartsWith("My "))
return;
var stringFormat = new StringFormat(StringFormat.GenericDefault);
stringFormat.SetMeasurableCharacterRanges(new []{new CharacterRange(0, 3)});
var bounds = Rectangle.Round(e.Graphics.MeasureCharacterRanges("My ",
Font, e.ClipRectangle, stringFormat)[0]
.GetBounds(e.Graphics));
e.Graphics.FillRectangle(new SolidBrush(BackColor), bounds);
}
}
现在使用SpecialLabel
而不是您的标签,并且每次标签中的文本以"我的"开头时,都不会打印此部分。当然,您仍然可以修改此行为。