如何知道ClickStrip的哪个项目被点击?

时间:2014-10-20 11:06:56

标签: c# menustrip

我正在使用c#并且我有一个MenuStrip控件,但我不知道如何识别它被点击的项目。例如,我曾经用一两种方法对所有点击(按钮)事件进行分组,例如“btnActions_click()”或“btnNavigation_click()”。然后,在方法内部,我通过将发送者解析为按钮并将其放在按钮var上来识别单击的按钮,然后检查该按钮var的名称是否等于“btnFoo”或“btnBar”。

因此,在这种情况下,如何才能知道ClickStrip控件的哪个项目被单击以便仅在一个方法中对所有点击事件进行分组?

我道歉,如果我的英语不正确。如果您无法理解我,我可以再试一次或发布一些代码。

感谢。

编辑:我没有发布任何代码,因为我认为这个问题没有必要,但有人建议我这样做,所以我会这样做。这是我用来确定点击了哪个按钮的示例。

private void btnNavegation_Click(object sender, EventArgs e)
    {
        Button btn = sender as Button;

        if (btn.Name == "btnNext")
             //go to next item of the list
        else if (btn.Name == "btnPrevious")
             //go to previous item of the list
    }

1 个答案:

答案 0 :(得分:1)

我认为您需要订阅ItemClicked事件(继承自ToolStrip),而不是订阅Click事件(继承自Control)。

Microsoft的文档提供的示例向您展示了如何确定每次调用(ToolStripItemClickedEventArgs::ClickedItem)上的点击项目:

private void ToolStrip1_ItemClicked(Object sender, ToolStripItemClickedEventArgs e)
{
    System.Text.StringBuilder messageBoxCS = new System.Text.StringBuilder();
    messageBoxCS.AppendFormat("{0} = {1}", "ClickedItem", e.ClickedItem );
    messageBoxCS.AppendLine();
    MessageBox.Show(messageBoxCS.ToString(), "ItemClicked Event" );
}