» »

Akcije nad grafiko v VB

Akcije nad grafiko v VB

damijani ::

Bok,
na žalost moram nekaj grafičnega sprogramirat v Visual basic. Pa se mi je pojavil problem kako bi izvedel.
naprimer:
da bi s klikom nad narisanim pravokotnikom se izvedla neka akcija (pravokotnik spremenil barvo)

LP

darkolord ::

Nekako takole

Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Y < Shape1.Top Then
        Shape1.FillStyle = 0
        Shape1.FillColor = vbRed
    End If
End Sub

damijani ::

na žalost mi nasvet ni pomagal, vseeno hvala.

da bol podrobno razložim mojo situacijo:
imam object pravokotnik, kateri ima vrednosti pravokotnilka in ga tudi izriše.
v njemu deklariram dogodek

Public Event click(ByVal a As System.Windows.Forms.MouseButtons)

in tudi proceduro

Public Sub mouseClick(ByVal s As System.Windows.Forms.MouseButtons)
RaiseEvent click(s)
End Sub

v glavnem razredu ga dodam
AddHandler obj.click, AddressOf obj_click

in ga kasneje kličem ob kliku
Private Sub obj_click(ByVal a As System.Windows.Forms.MouseButtons) Handles obj.click
MessageBox.Show("obj_click")
End Sub

napovem tudi izvor dogodka
Friend WithEvents obj As WindowsApplication5.pravok

8-O
sledeča koda mi ob različnih poskusih nič na izvede, mi pa izvede klike na button in label.

LP

darkolord ::

Aha, Visual Basic .NET torej...
Kakšne vrste objekt pa je tole? Kje pa dejansko loviš klike miške?

damijani ::

Objekt vsebuje podatke o pravokotniku in metode za izris le tega.
V končnem pogledu bi izgledal kot nekakšen gumb z nekaj drugimi lastnostmi.
Ob kliku na ta pravokotnik, pa bi se mi mogla izvedit neka akcija.

neoto ::

Kakor je že prej darkolord predlagal, v MouseDown/Move/Up rutini objekta, na katerem je tvoj objekt izrisan (Form, PictureBox, ...) preveri, če je x in y koordinata miške znotraj tvojega pravokotnika ter nato kliči proceduro v tvojem objektu.
Lahko pa narediš tako, da v tvojem objektu loviš vse dogodke preko sistemskih klicev ter nato preverjaš.

darkolord ::

Če ta lik narišeš "na roko", potem ne prejema nobenih povratnih informacij o miški... Če ga rišeš na formo, lahko uporabiš MouseClick metodo od forme in preveriš, če sta koordinati znotraj tvojega lika.

user4683 ::

Če bi rad, da je to gumb, ki malce drugače izgleda, bi bilo morda dobro ta tvoj razred kar izpeljati iz razreda Button in povoziti OnPaint metodo. Če to seveda pride v poštev (ne vem točno kakšna je celotna situacija).

Zgodovina sprememb…

  • spremenil: user4683 ()

damijani ::

uspelo mi je, hvala

LP


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Visual Basic

Oddelek: Programiranje
313463 (2489) cekr
»

Odpiranje programa v Visual Studio

Oddelek: Programiranje
8918 (776) darkolord
»

vb.net: dynamic textbox

Oddelek: Programiranje
51190 (1080) saule
»

[VB][.NET] pretvorba niza v število

Oddelek: Programiranje
181161 (1009) Bela01
»

VB.net MDI in formi splošno

Oddelek: Programiranje
91623 (1566) strel

Več podobnih tem