2009-01-11 12 views
6

In meinem VB.net-Projekt habe ich einen benutzerdefinierten Cursor (Window.cur) erstellt. Wie kann ich das dem Cursor zuweisen, ohne den vollständigen Dateipfad zu dieser Datei verwenden zu müssen?Eigenen Cursor aus Ressourcendatei setzen

VB.Net hat My.Resources, aber es zeigt nicht die Cursor, die in das Projekt eingebettet sind.

fand ich ein Beispiel, das Code wie folgt verwendet:.. New Cursor (Reflection.Assembly.GetExecutingAssembly.GetManifestResourceStream („Window.cur“), aber das funktioniert nicht

Antwort

8

die Ressourcennamen Erraten kann schwierig sein. Führen Sie Ildasm.exe in Ihrem Programm aus, um das herauszufinden. Doppelklicken Sie auf "Manifest" und suchen Sie nach der .mresource.

Eine andere Möglichkeit, das Vermessen zu vermeiden: Projekt + Eigenschaften, Registerkarte Ressource. Klicken Sie auf den Pfeil auf der Schaltfläche "Ressource hinzufügen", "Vorhandene Datei hinzufügen" und wählen Sie Ihre .cur-Datei aus. Lassen Sie Ihren Code wie folgt aussehen:

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

Sie den Namespace fehlen Sie wahrscheinlich verwenden möchten:

MyNamespace.MySubfolder.Window.cur 

EDIT:. auch, stellen Sie sicher, dass Ihre Build Action für das Element „Eingebettete Ressource“, sonst wird es nicht in Ihre dll/exe enthalten werden

+0

ocdecio: Können Sie bitte genauer? Ich habe alle Variationen ausprobiert, die ich mit dem, was du erwähnt hast, beschreiben konntest. VB.Net hat MyNamespace nicht von dem, was ich sehen kann (natürlich könnte ich falsch liegen). – KerryF

0

Angenommen, Sie zuweisen " Cursor1.cur "der c ursor für die Steuerung "Button1"

In Ihrem Form.Load Ereignisse würden Sie so etwas wie tun -

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

Danke für die Hilfe! Ich nahm an, dass, wenn ich die Ressource in der Visual Studio IDE erstellte, es meinem Projekt hinzufügen würde. Wie dumm von mir!

hatte ich auf die Registerkarte Projekt zu gehen, um die Window.Cur Datei hinzufügen verwenden Ressource hinzufügen (dank nobugz!) Und dann mit dem Code, den er erwähnt:

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

Button.Cursor = New Cursor(ms) 

ich auf die Antwort stimmen würde, wenn Ich könnte aber ich kann nicht, da ich momentan nur einen Wert von 13 habe.

0

Sie dürfen keine 32-Bit-Farbcursor verwenden.

Verwandte Themen