无法更改Label文本!

时间:2010-06-18 15:05:17

标签: c# winforms label

我创建了一个自定义控件并为其添加了label属性,因此在设计时我们可以选择一个Label并将其分配给该控件。所以基本上我想要的是,如果为该控件分配了一个标签,它的文本应该如下改变,它的文本也应该改为粗体字,所以这里是代码:

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();
    }
}

问题是基于上面的代码,该分配标签的Font正确地更改为Bold字体,但其Text不会生效。 为什么会这样?我该如何解决这个问题?

3 个答案:

答案 0 :(得分:1)

除非在控件的InitializeComponent()子例程中设置,否则我认为你不能这样做。

实际上,在更改之前字体是否设置为默认值?

答案 1 :(得分:0)

听起来你应该探索DataBinding。这非常适合处理基于其他控件状态更新标签的内部信息。

例如,如果你有两个控件,一个TextBox(textBox1)和一个Label(label1),你可以在想要绑定它们时调用以下代码行:

label1.DataBindings.Add("Text", textBox1, "Text");

这将label1的“Text”属性绑定到textBox1对象的“Text”属性。你可以在这里使用任何对象。 “正确”的方法是创建一个包含许多变量当前状态的底层数据源,并将所有控件绑定到该数据源。但是这种类型的代码可以让你快速前进。

答案 2 :(得分:0)

嗯!代码刚刚开始工作!每次运行表单时都会添加“*”这是一个小问题,但它应该是一个简单的修复。 欢迎任何其他很好的方法来实现这一目标:) 谢谢大家。