1

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

提前致谢

-DA

4

1 回答 1

2

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

查看 MSDN 上的ComputeImageAndTextLayout 代码示例,它计算图像所在的矩形。

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

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

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

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

于 2013-04-25T12:24:58.733 回答