2

我有一个带按钮的任务栏。在任务栏有很多事件,但点击一个按钮时只有一个事件。

TaskBar.ButtonClick += new System.Windows.Forms.ToolBarButtonClickEventHandler(this.TaskBarButtonClick);

我需要一个按钮按下TaskBar鼠标中键的事件。

就像是

if (e.Button == MouseButtons.Middle)
         {
            MessageBox.Show("Middle");
         }

只有任务栏

我知道这个例子。我这样做了。问题是任务栏的事件。我需要此任务栏上提供的按钮的事件

4

1 回答 1

1

e.Button 不是 type MouseButtons。它是类型ToolBarButton。所以它引用了工具栏上被点击的位置,而不是鼠标上用来进行点击的位置。

工具栏按钮

如果您需要处理单击了哪个工具栏按钮,请参考此示例以使用ToolBarButtonClickEventHandler作品。

//add some buttons.
TaskBar.Buttons.Add(new ToolBarButton()); //index 0
TaskBar.Buttons.Add(new ToolBarButton()); //index 1

//add the handler
TaskBar.ButtonClick += new ToolBarButtonClickEventHandler (
    this.taskbar_ButtonClick);

private void taskbar_ButtonClick (Object sender, ToolBarButtonClickEventArgs e)
{
    // Evaluate the Button property to determine which button was clicked. 
    switch(TaskBar.Buttons.IndexOf(e.Button))
    {
        case 0:
            //Whatever you want to do when the 1st toolbar button is clicked
            break; 
        case 1:
            //Whatever you want to do when the 2nd toolbar button is clicked
            break; 
    }
}

鼠标按钮

您可以为事件添加事件处理程序MouseDown以捕获单击的鼠标按钮

TaskBar.MouseDown += new MouseEventHandler(this.taskbar_MouseDown);

private void taskbar_MouseDown(object sender, MouseEventArgs e)
{
    // Determine which mouse button is clicked. 
    if(e.Button == MouseButtons.Middle)
    {
        MessageBox.Show("Middle");
    }
}
于 2013-08-13T03:17:15.117 回答