3

我有一个使用 ContextMenuStrip 的 C# winForm 项目。我根据使用交互动态地将 ToolStripMenuItems 添加到 ContextMenuStrip。当我添加一个新的 ToolStripMenuItem 时,我将它设置为 Text 属性和 Image 属性。如果不从图像所在的位置获取图像,我不知道如何设置 Image 属性。如何将想象添加到我的项目中?这是我的代码正在执行的示例

    上下文菜单条 cxtMnuStrp = 新的上下文菜单条;

    私人无效Button_Click(对象发送者,EventArgs e)
    {
       // 一些过滤和逻辑
       // 确定天气
       // 创建并添加一个 ToolStripMenuItem
       // 等等等等等等...

       ToolStripMenuItem item = new ToolStripMenuItem("uniqueName");

       item.Image = Image.FromFile(@"C:\MyFolder\MyIcon.ico");

       if (cxtMnuStrp.Items.ContainsKey(item) == false)
           cxtMnuStrp.Items.Add(item);
    }

使用 "item.Image = Image.FromFile(@"C:\MyFolder\MyIcon.ico")" 当我分发我的每台机器时,必须有 "C:\MyFoler" 目录并且还有 "MyIcon.ico"在他们的计算机上的“C:\MyFoler”目录中。

另外,每次我想向我的 ToolStripMenuItem 添加图标时,我似乎都点击了硬盘驱动器。

4

1 回答 1

8

您可以将图标保存在资源文件中或将图像保存为嵌入式资源。

使用资源文件。

将图像添加为嵌入式资源

您的代码将如下所示。

private void BuildContextMenuStrip_Click(object sender, EventArgs e)
{
    ContextMenuStrip cxtMnuStrp = new ContextMenuStrip();

    ToolStripMenuItem item = new ToolStripMenuItem("uniqueName") { Image = WindowsFormsApplication2.Properties.Resources.Search.ToBitmap() };

    if (cxtMnuStrp.Items.Contains(item) == false)
        cxtMnuStrp.Items.Add(item);

    this.ContextMenuStrip = cxtMnuStrp;
}

笔记:

  1. 如果您在资源文件中添加了一个图标。您必须使用.ToBitmap()将其转换为图像。
  2. 这些图像现在可以在智能感知中使用,而不是使用路径字符串。
  3. 我已将 contextMenuStrip 添加到上面示例中的表单中。

除了上面链接中提供的有关如何添加资源的信息之外,您还可以按如下方式添加它们

在此处输入图像描述

于 2013-04-24T01:46:29.440 回答