我有一个窗口,我创建了一个类。
我想从该类更改窗体的标签文本,但它不起作用。
这是我的代码:
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();
}
}
答案 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();