2009-01-11 29 views
6

Trong dự án VB.net của tôi, tôi đã tạo một con trỏ tùy chỉnh (Window.cur). Làm thế nào tôi có thể gán cho con trỏ mà không phải sử dụng đường dẫn tệp đầy đủ đến tệp đó?Đặt con trỏ tùy chỉnh từ tệp tài nguyên

VB.Net có My.Resources nhưng nó không hiển thị các con trỏ được nhúng trong dự án.

Tôi tìm thấy một ví dụ mà sử dụng mã như thế này:.. New Cursor (Reflection.Assembly.GetExecutingAssembly.GetManifestResourceStream ("Window.cur") nhưng điều đó không làm việc

Trả lời

8

Đoán tên tài nguyên có thể khó khăn. Để tìm hiểu, hãy chạy Ildasm.exe trên chương trình của bạn. Nhấp đúp vào "Manifest" và tìm kiếm .mresource.

Một cách khác để làm điều đó tránh đoán: Dự án + Thuộc tính, tab Tài nguyên. Nhấp vào mũi tên trên nút "Thêm tài nguyên", Thêm tệp hiện có và chọn tệp .cur của bạn. Làm cho mã của bạn trông giống như sau:

Dim ms As New System.IO.MemoryStream(My.Resources.Cursor1) 
Button1.Cursor = New Cursor(ms) 
0

Bạn đang thiếu không gian tên Bạn có thể muốn sử dụng:

MyNamespace.MySubfolder.Window.cur 

EDIT:. Ngoài ra, hãy chắc chắn hành động xây dựng của bạn cho các mục được "Embedded Resource", nếu không nó sẽ không được bao gồm trong dll của bạn/exe

+0

ocdecio: Bạn có thể cụ thể hơn không? Tôi đã thử tất cả các biến thể mà tôi có thể nghĩ đến với những gì bạn đã đề cập. VB.Net không có MyNamespace từ những gì tôi có thể thấy (dĩ nhiên tôi có thể sai). – KerryF

0

Giả sử bạn đang gán " Cursor1.cur "là c ursor cho sự kiểm soát "Button1"

Trong trường hợp Form.Load của bạn, bạn sẽ làm điều gì đó giống như -

Button1.Cursor = New Cursor(Me.GetType(), "Cursor1.cur") 
1

Cảm ơn sự trợ giúp! Tôi giả định rằng nếu tôi tạo tài nguyên trong Visual Studio IDE, nó sẽ thêm nó vào dự án của tôi. Tôi ngớ ngẩn quá!

tôi đã phải đi đến tab Project để thêm file Window.Cur sử dụng Add Resource (nhờ nobugz!) Và sau đó sử dụng mã ông nói:

Dim ms As New System.IO.MemoryStream(My.Resources.Window) 

Button.Cursor = New Cursor(ms) 

tôi sẽ bỏ phiếu lên trên câu trả lời nếu Tôi có thể nhưng tôi không thể như tôi chỉ có một giá trị của 13 hiện tại.

0

bạn không được sử dụng con trỏ màu 32 bit.

Các vấn đề liên quan