Místo cursoru - obrázek z pictureboxu   zodpovězená otázka

VB.NET, WinForms

Zdravim, jsem začátečník a zajímá mě jak udělám aby místo cursoru jsem měl obrázek ( image ) z Pictureboxu. Děkuju předem za jakoukoliv radu.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ahoj,tak sem něco zkoušel a nevím zda je to zrovna šťastné řešení ale třeba tě to popostrčí dál

Public Class Form1
    Dim x As String
    Dim y As String

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Dim mousePos As Point = Control.MousePosition ' zachycení polohy myši
 x = mousePos.X
        y = mousePos.Y
        PictureBox1.Top = y
        PictureBox1.Left = x

    End Sub

 Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.Click
  
End Sub 

End Class

Je tam hodně chyb (poloha se zachytí pouze při startu a taky neni poloha přesná a není místo myši) ale snažím se pomoci s tím co vim tak hodně štěstí.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Obávám se, že Vaše řešení není úplně nejštastnější. Nic ale nebrání tomu, si ukázat jak opravit Váš kód.

Za prvé bych místo textového String na ukládání pozic použil číselný Integer.

Další chybou je umístění nastavení pozice do Form_Load. To způsobí, že se pozice nastaví jen jednou při startu aplikace. Mnohem lepší by bylo umístit kód do MouseMove události, která se vyvolá právě pokaždé při změně pozice myši. Navíc místo Control.MousePosition bych použil v této události dostupnou e.x a e.Y.

A poslední upozornění je na celou myšlenku posunování PictureBoxu, nápad je to zajímavý, ale objekty formuláře nejsou na toto dělané a mohlo by to být pomalé a navíc bude obrázek pravděpodobně blikat. To je asi hlavní důvod proč bych se přiklonil k nakreslení vlastního kurzoru.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Spis bych se snazil jit cestou konverze obrazku do .cur souboru a ten nasledne pouzit

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Pokud formulář nevykreslujete nějakým speciálním způsobem, obávám se, že lepší způsob než konverze do formátu kurzoru cur nebude.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

OK, a nevíte náhodou kde se nachází složka těch cursorů ? Nemohu to nikde najít a ani nevím jak ten můj nový cursor dám do formuláře. ještě vám popíši co vlastně chci. Dělám si nějakou hru a v té hře by byl obrázek cursoru třeba můj vytvořený míč. PS: Koukal jsem na vaši hru Roboempire a tam je obrázek ze hry, kde máte jiný cursor, zde to je:

http://cdn.dotnetportal.cz/files/Windows...

nahlásit spamnahlásit spam 0 odpovědětodpovědět

No to je právě ten případ speciálního vykreslování. Nepoužíváme ve hře běžné formulářové prvky a v tom případě si řídíme vykreslování sami a tak máme možnost napsat si i vlastní vykreslovací metodu.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback