在我的 VB.net 项目中,我创建了一个自定义光标 (Window.cur)。如何将其分配给光标而不必使用该文件的完整文件路径?
VB.Net 有 My.Resources 但它不显示嵌入在项目中的游标。
我找到了一个使用如下代码的示例:
New Cursor(Reflection.Assembly.GetExecutingAssembly.GetManifestResourceStream("Window.cur")
但这不起作用。
在我的 VB.net 项目中,我创建了一个自定义光标 (Window.cur)。如何将其分配给光标而不必使用该文件的完整文件路径?
VB.Net 有 My.Resources 但它不显示嵌入在项目中的游标。
我找到了一个使用如下代码的示例:
New Cursor(Reflection.Assembly.GetExecutingAssembly.GetManifestResourceStream("Window.cur")
但这不起作用。
猜测资源名称可能很困难。要找出答案,请在您的程序上运行 Ildasm.exe。双击“Manifest”并查找 .mresource。
另一种避免猜测的方法:项目+属性,资源选项卡。单击“添加资源”按钮上的箭头,添加现有文件并选择您的 .cur 文件。使您的代码如下所示:
Dim ms As New System.IO.MemoryStream(My.Resources.Cursor1)
Button1.Cursor = New Cursor(ms)
谢谢您的帮助!我假设如果我在 Visual Studio IDE 中创建资源,它会将其添加到我的项目中。傻我!
我必须转到 Project 选项卡以使用 Add Resource 添加 Window.Cur 文件(感谢 nobugz!),然后使用他提到的代码:
Dim ms As New System.IO.MemoryStream(My.Resources.Window)
Button.Cursor = New Cursor(ms)
您缺少名称空间。您可能想使用:
MyNamespace.MySubfolder.Window.cur
编辑:另外,请确保您的项目的构建操作是“嵌入式资源”,否则它将不会包含在您的 dll/exe 中。
假设您将“Cursor1.cur”指定为控件“Button1”的光标。
在您的 Form.Load 事件中,您会执行以下操作 -
Button1.Cursor = New Cursor(Me.GetType(), "Cursor1.cur")