c#检查标签,如果它包含一个字符串

问题描述:

我试图做一个按钮以不同'行动'。 当我第一次点击你应该看到桌面名称,第二次点击应该删除这个。 但我的第二个代码显示了我第一次点击,我做错了什么?c#检查标签,如果它包含一个字符串

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."; 
     } 
+2

因为根据您的代码'lbUsername.Text'始终包含'userName'。所以第二个'lbUsername.Text'总是覆盖第一个。 –

+0

请用一些例子说明你想要达到的功能 – user3598756

它恰克到:适用于标签的文本

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; 
} 

的更改会立即传播。

+0

,但现在按钮只有1次点击,其他点击什么都不做 – daffy

+0

你必须处理代码中的点击,发布你有这个按钮的整个代码。 – Damian

+0

http://i64.tinypic.com/2h708xj.png设计 http://i65.tinypic.com/v8281h.png代码 我上传了一些图片来清除它 – daffy

您的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; 
} 

,或者如果您使用的是Conditional Operator

bool hasUserName = lbUsername.Text.Contains(userName)) 
lbUsername.Text = hasUserName ? "klik op de knop, dokus." : "Username: Hallo," + userName; 

编辑:

基于贴在dotnetFiddle link的代码,你应该这样做。在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; 

    } 
+0

但是当我重新点击按钮的文字需要改变,但它坚持使用文本1 – daffy

+0

您是否在按钮单击事件中实现了代码?你能发布你的完整代码吗? –

+0

是的,它是在按钮点击事件,不知道我可以再次发布代码的位置?因为它在评论中包含太多文字。 – daffy