2013-10-09 50 views
0

我试图做到的是动态生成图像,并将其添加到ItemMenuStrip作为图像。它的工作原理,当我将它设置为背景图片,但是当我试图将其设置为图像失败。我在这里做错了什么?C#动态生成图像,并将其设置为ItemMenuStrip图片

代码:

foreach (ColorData colordata in colors) 
     { 

      ToolStripMenuItem item = new ToolStripMenuItem 
      { 
       Image = GenerateColorImage(colordata.UserSelectedColor), 
       Text = colordata.ColorDescription, 
       ToolTipText = "Click to change color", 
       Tag = num 
      }; 

      item.Click += (sender, e) => { setScreenColors_Click(sender, e, colors); }; 
      list.Add(item); 
      num++; 
      // item.Dispose(); 
     } 

private Bitmap GenerateColorImage(Color color) 
    { 
     Bitmap colorimage = new Bitmap(16, 16); 
     using (Graphics graphics = Graphics.FromImage(colorimage)) 
     { 
      graphics.Clear(color); 
     } 
     return colorimage; 
    } 
+0

我的错。 items.Dispose();造成了这个问题。我不得不对此发表评论。 – user2861648

回答

0

编辑:这可能是你在找什么,

private Bitmap GenerateColorImage(Color color) 
     { 
      Bitmap colorimage = new Bitmap(16, 16) ; 
      using (Graphics graphics = Graphics.FromImage(colorimage)) 
      { 
       graphics.Clear(color); 
       using (SolidBrush brush = new SolidBrush(colorimage) 
       { 
        graphics.FillRectangle(brush, 0, 0, 16, 16); 
       } 

      } 
      return colorimage; 
     } 
+0

不工作。我编译,但菜单中的项目根本没有创建。 – user2861648

+0

检查编辑。这可能是不好意思工作 –

+0

不工作,但看起来问题不在于内GenerateColorImage功能,但与动态生成的菜单项功能。 Thanx帮忙反正;) – user2861648

相关问题