1

我为包含两个按钮的 Visual Studio 编写插件。我希望当用户点击其中一个按钮时,此按钮将被禁用,而另一个按钮将被启用。我该怎么做?

按钮是命令类型(commands.AddNamedCommand2...)

先谢谢了!

4

5 回答 5

1
void Btn1_Click(Object sender, EventArgs e)
{
   Btn2.Enabled = false;
}

void Btn2_Click(Object sender, EventArgs e)
{
   Btn1.Enabled = false;
}
于 2012-07-31T09:51:27.813 回答
1

你可以试试这个:

private void button1_Click(object sender, EventArgs e)
    {
        this.button1.Enabled = false;
        this.button2.Enabled = true;
    }

    private void button2_Click(object sender, EventArgs e)
    {
        this.button2.Enabled = false;
        this.button1.Enabled = true;
    }  

希望对你有帮助....

于 2012-07-31T10:01:57.220 回答
0

您可以将一些状态变量与您的按钮相关联,以表达您的按钮是否应在您的加载项的最近状态下启用。当您的加载项初始化时,您应该根据需要设置状态。在查询中,您可以检查加载项的最近状态并将按钮设置为正确的启用/不支持状态。

可以通过接口的QueryStatus方法修改状态IDTCommandTarget(如果加载了您的加载项)。

默认模板实现:

public void QueryStatus(string commandName, vsCommandStatusTextWanted neededText, ref vsCommandStatus status, ref object commandText)
{
    if(neededText == vsCommandStatusTextWanted.vsCommandStatusTextWantedNone)
    {
        if(commandName == "YourAddin.Connect.YourAddinCommandName")
        {
            status = (vsCommandStatus)vsCommandStatus.vsCommandStatusSupported|vsCommandStatus.vsCommandStatusEnabled;
            return;
        }
    }
}

您可以通过将状态设置为来禁用按钮vsCommandStatus.vsCommandStatusUnsupported

于 2013-12-22T18:09:25.803 回答
0

此外,如果您想在初始状态下启用或禁用这些按钮。例如,您想在程序中禁用按钮 1。在说明程序后,您想在单击按钮 2 后启用按钮 1,然后您想在页面加载时添加按钮状态为跟随;

 private void Form1_Load(object sender, EventArgs e)
        {
            this.button1.Enabled = false;
            this.button2.Enabled = true;
        }
 private void button2_Click(object sender, EventArgs e)
    {       
        this.button1.Enabled = true;
    }
于 2017-05-26T09:52:07.667 回答
-1
// Remove event handler
this.button_Ping.Click -= new System.EventHandler(this.button_Ping_Click);

Some action...

// Add event handler
this.button_Ping.Click += new System.EventHandler(this.button_Ping_Click);
于 2012-08-09T11:58:32.907 回答