我正在开发一个 C# winForm 应用程序,它有一个动态添加 toolStripMenuItems 的 ContextMenuStrip。我的资源文件中还有一个图标,我分配给 toolStripMenuItem.Image 属性并处理 toolStripMenuItem.Click 事件。如果单击图像(图标)但图标/图像没有单击事件,我实际上想处理单击事件。如何创建一个可以分配给 toolStripMenuItem 的 image 属性的点击图标?
提前致谢
-DA
我正在开发一个 C# winForm 应用程序,它有一个动态添加 toolStripMenuItems 的 ContextMenuStrip。我的资源文件中还有一个图标,我分配给 toolStripMenuItem.Image 属性并处理 toolStripMenuItem.Click 事件。如果单击图像(图标)但图标/图像没有单击事件,我实际上想处理单击事件。如何创建一个可以分配给 toolStripMenuItem 的 image 属性的点击图标?
提前致谢
-DA
您必须自定义 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 事件。