以相同的形式更改来自不同类的lablel文本

时间:2016-06-20 19:37:48

标签: c#

我有一个窗口,我创建了一个类。
我想从该类更改窗体的标签文本,但它不起作用。

这是我的代码:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }
    class clowder
    {
        public clowder()
        {
            label2.text="boject created ok done";
        }
    }
    private void button1_Click(object sender, RoutedEventArgs e)
    {
        clowder c1 = new clowder();
    }
}

1 个答案:

答案 0 :(得分:0)

该课程中不存在

label2。您需要传递对它的引用。像这样简单的东西会“起作用”:

public clowder(Label label2)
{
    label2.Text = "boject created ok done";
}

在调用时:

clowder c1 = new clowder(this.label2);

然而 ,这有点混乱。

首先,在构造函数中执行此通常是一个坏主意。构造函数应该只构造一个对象,它不应该执行任务。

其次,最好将UI元素引用保留在UI对象中(在本例中为Form个对象)。不是将UI元素传递给业务逻辑对象来修改这些元素,而是从业务逻辑对象中获取 values 并修改UI 中的UI元素。更像是这样:

public class clowder
{
    public string SomeOperation()
    {
        return "boject created ok done";
    }
}

,格式为:

label2.Text = new clowder().SomeOperation();