Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 更改菜单标题_C#_Winforms - Fatal编程技术网

C# 更改菜单标题

C# 更改菜单标题,c#,winforms,C#,Winforms,我正在调用一个表单,以便用户从菜单项单击UsingForm.Show登录; 只是想根据登录结果更改菜单的标题。我知道这太基本了,但我不知道怎么做 这是我尝试过的代码 private void ChangeLogin_Click(Office.CommandBarButton cmdBarbutton, ref bool cancel) { Login openLogin = new Login(); openLogin.Show(); if (openLogin.Logi

我正在调用一个表单,以便用户从菜单项单击UsingForm.Show登录; 只是想根据登录结果更改菜单的标题。我知道这太基本了,但我不知道怎么做

这是我尝试过的代码

private void ChangeLogin_Click(Office.CommandBarButton cmdBarbutton, ref bool cancel)
{
    Login openLogin = new Login();
    openLogin.Show();
    if (openLogin.LoginValid)
    {
        cmdBarbutton.Caption = "Success";
    }
    else
    {
        cmdBarbutton.Caption = "Failure";
    }
}

使用WPF菜单项时:

menuItem.Header = openLogin.LoginValid ? "Success" : "Failure";
另外,请确保在关闭窗体之前使用ShowDialog而不是Show来阻止:

使用Office命令按钮时:

private void ChangeLogin_Click(Office.CommandBarButton cmdBarbutton, ref bool cancel)
{
    Login openLogin = new Login();
    openLogin.ShowDialog();
    cmdBarbutton.Caption = openLogin.LoginValid ? "Success" : "Failure";
}

这是一个wpf项目这不是一个wpf应用程序,它是一个Office应用程序!为什么有Office.CommandBarButton类型的参数?是Office插件吗?是的,是outlook插件。@seb请不要在问题上签名。此外,无需添加感谢。这被认为是噪音。我试过了,你能给我看一下我更新过的cod吗question@SebastianXavier-我补充了我的答案。请确保您使用的是ShowDialog,而不是ShowIt。我没有以正确的方式思考。很长时间了,因为我做了这样的事情。所以是ShowDialog?顺便说一句:更改按钮标题不是很直观。更好的UI实践是启用/禁用按钮,并在状态栏中显示状态,而不是在按钮中显示状态,除非它是复选框或组合框