可点击的ToolStripMenuItem图像

时间:2013-04-25 01:32:42

标签: c# winforms click contextmenu toolstripitem

我正在开发一个C#winForm应用程序,该应用程序具有一个动态添加toolStripMenuItems的ContextMenuStrip。我在资源文件中也有一个图标,我分配给toolStripMenuItem.Image属性,我处理toolStripMenuItem.Click事件。我实际上想要处理单击事件,如果单击图像(图标)但图标/图像没有单击事件。如何创建可以分配给toolStripMenuItem的图像属性的点击图标?

提前致谢

-DA

1 个答案:

答案 0 :(得分:2)

您必须使用 ContentRectangle 属性自定义ToolStripItem并获取图像所在的矩形。

查看MSDN上的ComputeImageAndTextLayout code sample,它计算图像所在的矩形。

在ToolStripItem的MouseDown事件中,当MouseDown事件发生时,您将获得ToolStripItem中鼠标的坐标,如下所示

void item_MouseDown(object sender, MouseEventArgs e)
{
    int x = e.X;
    int y = e.Y;
}

然后,您必须计算MouseDown坐标是否位于获得的矩形中并引发ImageClicked事件。

使用相同的方法,您还可以引发TextClicked事件。