我有一个方法应该在label.text中返回当前用户的域名。我在表单的load事件中调用该方法但没有出现,代码中也没有错误。也许我启动对象错了?如果我直接将方法代码放在load事件中,它就可以工作。
public partial class Main Form
{
public Main()
{
InitializeComponent();
}
public string getCurrentDomain()
{
return domainNameValue.Text = Environment.UserDomainName;
}
public void Main_Load(object sender, EventArgs e)
{
Main main = new Main();
main.getCurrentDomain();
}
}
答案 0 :(得分:6)
我认为您的问题出在Main_Load
函数中,而您正在创建新表单而不是更改当前表单,正确的代码是:
public void Main_Load(object sender, EventArgs e)
{
this.getCurrentDomain();
}
或者,如果您想要使用main.show()
答案 1 :(得分:0)
问题是因为您在<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet"/>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap-theme.min.css" rel="stylesheet"/>
<div id="test">
<a href="#" style="font-size: 1.2em" class="blink">
<span class="glyphicon glyphicon-record"></span>
</a>
</div>
方法中创建了Main类的新实例。因此,方法Main_Load
更改您正在创建的实例的标签文本而不是执行getCurrentDomain()
的表单中的标签。
方法Main_Load
的主体也违反了Principle of least astonishment,因为该方法产生的副作用会改变标签的文本。但方法名称仅建议返回当前域名。
答案 2 :(得分:-1)
您可以使用
public string getCurrentDomain() // Method: Get current domain
{
domainNameValue.Text = Environment.UserDomainName;
return Environment.UserDomainName;
}