Skip to main content
 首页 » 编程设计

c#之.ToBitmap : Missing 'Using Directive' or 'Assembly Reference'

2024年02月05日37xiaohuochai

我有一个用 C# 编写的 Windows 控制台应用程序,它充当电话簿。我在应用程序设置菜单图标的行中遇到了 Missing Directives 错误,例如这个:

cmsProgramMenu.Items.Add("&Settings", Properties.Resources.phone_receiver.ToBitmap(), OnSettings_Click); 

完整的错误是“object”不包含“ToBitmap”的定义,并且找不到接受“object”类型的第一个参数的扩展方法“ToBitmap”(您是否缺少 using 指令或程序集引用?)。

我在网上和 SO 上四处搜寻,我看到的所有建议指令都已包含在我的代码中,但错误仍然存​​在。这些是我拥有的:

using System; 
using System.Collections.Generic; 
using System.Drawing; 
using System.Linq; 
using System.Net; 
using System.Net.Sockets; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 
using System.Configuration; 
using System.Data; 
using System.Windows.Media.Imaging; 

我还缺少另一个吗?还是有另一种将图像转换为位图的方法?我在 Visual Studio 2015 中工作。

请您参考如下方法:

问题是 Properties.Resources.phone_receiver 是类型 Object 并且错误消息说 Object 没有方法称为 ToBitmap。如果您确定这是一个 Icon(您的代码表明它是),那么您可以执行以下操作:

((Icon)Properties.Resources.phone_receiver).ToBitmap() 

这显式地将 Properties.Resources.phone_receiver 转换为 Icon,然后编译器知道它可以对其调用 ToBitmap 方法。