无法更改标签文本!
我已经创建了一个自定义控件并为其添加了一个标签属性,因此在设计时我们可以选择一个标签并将其分配给该控件。所以基本上我想,如果一个标签被分配到控制,其文本应该如下改变,也是其文本应更改为粗体字,所以这里是代码:无法更改标签文本!
private Label assignedLabel;
public Label AssignedLabel
{
get
{
return assignedLabel;
}
set
{
assignedLabel = value;
assignedLabel.Text = @"*" + assignedLabel.Text;
assignedLabel.Font = new Font(AssignedLabel.Font, FontStyle.Bold);
AssignedLabel.Refresh();
}
}
问题,基于该分配的标签的字体上方的代码正确更改为粗体字体,但其文本不会生效。 这是为什么发生?我该如何解决这个问题?
这听起来好像你应该探索DataBinding。这对于处理基于其他控件状态的内部更新标签来说非常完美。
举例来说,如果你有两个控件,一个文本框(textBox1中)和标签(label1的),你可以把下面的代码行,只要你想将它们绑定:
label1.DataBindings.Add("Text", textBox1, "Text");
此绑定label1的“Text”属性为textBox1对象的“Text”属性。你可以在这里使用任何对象。做到这一点的“正确”方法是创建一个包含许多变量当前状态的基础数据源,并将所有控件绑定到该数据源。但是这种类型的代码会让你快速进入。
嗯!代码刚开始工作!每次运行表单时都会添加“*”,但这应该是一个简单的修复。 欢迎任何其他不错的方式来完成这个目标:) 谢谢大家。
你的意思是“*”+ assignedLabel.Text? – 2010-06-18 15:21:54
是...正确。 – Bohn 2010-06-18 15:27:33
我无法重现您的问题。你确定你在UI线程上执行这段代码吗?如果不是,不可预知的事情可能会发生... – 2010-06-18 15:38:14