Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: nolosabe en 22 Abril 2012, 20:07 pm



Título: Ayuda principiante boton que no se puede clickear
Publicado por: nolosabe en 22 Abril 2012, 20:07 pm
Hola, que tal, les cuento que recien empiezo con vb, estoy usando v studio 2003 porque es el que usamos en el instituto.


quiero hacer un formulario con un boton en el cual cuando le apuntes con el mouse para clickearlo se mueva hacia arriba hasta cierto punto, pero la idea es que solo se mueva cuando le vas a apuntar o pasar el mouse por encima, para eso use MOUSE MOVE, logré que se mueva hacia arriba hasta ese cierto punto, pero si voy y dejo el mouse posicionado en el punto mas alto al que se mueve el boton, el boton no para de moverse... debo de tener un error con el while.
probe poner el while de otra forma y con un if pero solo se mueve una vez y eso no sirve, se tiene que mover siempre que se lo quiera apuntar con el mouse asi no se puede clickear... les dejoj el codigo

Código
  1.    Private Sub Button1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Button1.MouseMove
  2.        Dim x As Integer, y As Integer
  3.  
  4.        x = 32
  5.        y = 272
  6.  
  7.        While (y > 220)
  8.            y = y - 3
  9.  
  10.            Button1.Location() = New Point(x, y)
  11.        End While
  12.  
  13.    End Sub


Título: Re: Ayuda principiante boton que no se puede clickear
Publicado por: kub0x en 22 Abril 2012, 20:28 pm
Primero, esto no es vb6 amigo... tu mismo has dicho que trabajas en Visual Studio, pues dicha plataforma lleva integrada el framework de .NET
Segundo: el control por lo que veo (no he probado el código) solo se movería una vez ya que cada vez que se llama al evento MouseEvent declaras la variable Y con el mismo valor.

Entonces tenemos que la expresión y = y - 3 tendrá siempre el mismo valor, por lo que uno deduce que solo se moverá una vez el botón. ¿Qué hacer? Manejar Y habiendo declarado la variable de forma global.

Saludos.


Título: Re: Ayuda principiante boton que no se puede clickear
Publicado por: nolosabe en 22 Abril 2012, 20:46 pm
ok pero como hago que para en vez de declararle yo un valor a x o a y, ponerle el valor de las coordenadas actuales?
algo asi como
dim x as integer
x= button.location x
o algo asi, ni idea porque es la primera vez que uso visual

 yo nunca dije que era visual basic 6


Título: Re: Ayuda principiante boton que no se puede clickear
Publicado por: kub0x en 22 Abril 2012, 20:54 pm
Lo del vb6 lo digo porque estás en el foro de Vb no de .NET y el código está etiquetado y coloreado bajo VB.

Te dejo lo que pides, simplemente obtengo las coordenadas actuales del Button y comienza un bucle que mueve el control mientras Y sea menor que 220:
Código
  1. Public Sub Mover_Button()
  2. Dim X as Integer = Button1.Location.X
  3. Dim Y as integer = Button1.Location.Y
  4.  
  5. While Y > 220
  6. Y-=3
  7. Button1.Location = New Point(X,Y)
  8. End While
  9. End Sub
  10.  

Saludos!


Título: Re: Ayuda principiante boton que no se puede clickear
Publicado por: raul338 en 22 Abril 2012, 21:08 pm
Y porque usas while? Si en realidad es el mismo usuario el que hace el ciclo :P
Cada vez que toques el boton, lo mueves hacia arriba si no supero cierto punto. Algo asi

Código
  1. Public Sub Mover_Button()
  2. Dim X as Integeger = Button1.Location.X
  3. Dim Y as integer = Button1.Location.Y
  4.  
  5. If Y > 200 Then
  6.    Y-=3
  7.    Button1.Location = New Point(X,Y)
  8. End If
  9. End Sub
  10.  


Título: Re: Ayuda principiante boton que no se puede clickear
Publicado por: nolosabe en 22 Abril 2012, 21:42 pm
ahi va muchas gracias... 2 cosas mas y no jodo
1 - Como hago para que no se le pueda hacer "focus" o ponerle a "gotfocus" que inmediatamente le de focus a otro boton

2 - Recomiendenme un manual, libro, o cursito online. yo ya se algo de C# pero nada de visual studio

muchas gracias ! :D


Título: Re: Ayuda principiante boton que no se puede clickear
Publicado por: kub0x en 22 Abril 2012, 21:43 pm
Se me olvido modificar el bucle, simplemente lo escribi todo de una tajada :D
El programa correría perfectamente si reemplazas el bucle por una sentencia condicional.

Saludos.


Título: Re: Ayuda principiante boton que no se puede clickear
Publicado por: kub0x en 22 Abril 2012, 21:51 pm
Para que un usuario no pueda establecer el foco en el Button mediante el Tabulador cambia la propiedad TabStop del Button a True.

Con el valor cambiado a True podrías perfectamente mover el Button en la direccion que quieras.

Por ejemplo:

Código
  1. Public Sub Mover_Button()
  2.        Dim X As Integer = Button1.Location.X
  3.        Dim Y As Integer = Button1.Location.Y
  4.            If Y > 90 Then
  5.                Y -= 2
  6.            Button1.Location = New Point(X, Y)
  7.        Else
  8.            Button1.Location = New Point(X, 150)
  9.        End If
  10.    End Sub
  11.  

Saludos.


Título: Re: Ayuda principiante boton que no se puede clickear
Publicado por: raul338 en 22 Abril 2012, 22:20 pm
Tutorial vb.net de elGuille (http://www.elguille.info/NET/cursoVB.NET/default.aspx)

Usa el metodo Focus