[英]c# check label if it contains a string
我正在尝试对不同的“动作”进行按钮。 当我第一次单击时,您应该看到桌面名称,第二次单击应将其删除。 但是,我的第二个代码在我单击的第一刻出现,我该怎么办?
string userName = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
lbUsername.Text = "Username: Hallo," + userName;
if (lbUsername.Text.Contains(userName))
{
lbUsername.Text = "klik op de knop, dokus.";
}
将其更改为:
string userName = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
if (lbUsername.Text.Contains(userName))
{
lbUsername.Text = "klik op de knop, dokus.";
}
else
{
lbUsername.Text = "Username: Hallo," + userName;
}
应用于标签文本的更改将立即传播。
您的lblUsername.Text分配都将始终执行,因为if条件将始终评估为true。
而是尝试这个。
string userName = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
if (lbUsername.Text.Contains(userName))
{
lbUsername.Text = "klik op de knop, dokus.";
}
else
{
lbUsername.Text = "Username: Hallo," + userName;
}
还是使用条件运算符 ?:
bool hasUserName = lbUsername.Text.Contains(userName))
lbUsername.Text = hasUserName ? "klik op de knop, dokus." : "Username: Hallo," + userName;
编辑:
根据dotnetFiddle 链接上发布的代码,您应该这样做。 在Form_Load事件上分配lblUsername的初始值。 在按钮上单击,您始终可以分配用户名文本
private void Form1_Load(object sender, EventArgs e)
{
//THis will only be assigned when the Form is loaded.
lbUsername.Text = "klik op de knop, dokus.";
}
private void btnMagic_Click(object sender, EventArgs e)
{
//On Every button click this will be executed.
string userName = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
lbUsername.Text = "Username: Hallo," + userName;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.