我知道这已被要求数以千计的时间,但仍然有大量的研究后,我无法找到一个解决方案,我对这个职位真的很抱歉。
我想从一个类来访问我的标签在另一个命名空间。 这是一个代码示例,以更好地了解什么,我试图做的:
public partial class Main : Form
{
public Main()
{
InitializeComponent();
}
}
//class in another namespace
class Servers
{
public void _SetlabelText()
{
Main.label1.Text = "New Text";
}
}
我怎么做的正确方法?
一种选择是存储在这样的构造形式参考:
public class Servers
{
private Form _frmMain;
public Servers(Form frmMain)
{
_frmMain = frmMain;
}
public void SetlabelText()
{
_frmMain.label1.Text = "New Text";
}
}
并使用它像这样:
public partial class Main : Form
{
public Main()
{
InitializeComponent();
var servers = new Servers(this);
servers.SetlabelText();
}
}
然而,它通常被建议要返回Form类,并将其设置在那里,就像这样:
public partial class Main : Form
{
public Main()
{
InitializeComponent();
label1.Text = Servers.GetTextForLabel();
}
}
public class Servers
{
public static string GetTextForLabel()
{
return "New Text"; //(I assume this will be much more complex)
}
}