单击后如何禁用和启用加载项按钮

时间:2012-07-31 09:48:39

标签: c# visual-studio-2010 add-in visual-studio-addins

我为visual studio写了一个包含两个按钮的插件。 我希望当用户点击其中一个时,此按钮将被禁用,另一个将被启用。 我怎么能这样做?

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

先谢谢!

5 个答案:

答案 0 :(得分:0)

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

void Btn2_Click(Object sender, EventArgs e)
{
   Btn1.Enabled = false;
}

答案 1 :(得分:0)

你可以试试这个:

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

希望这会对你有帮助....

答案 2 :(得分: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

来停用按钮

答案 3 :(得分:0)

此外,如果要在初始状态下启用或禁用这些按钮。作为示例,您要在程序中禁用button1。在说明程序后,您要在单击button2后启用button1,然后您要添加按钮状态页面加载如下;

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

答案 4 :(得分:-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);