elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Scroll de Imagenes?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 3 4 5 6 7 Ir Abajo Respuesta Imprimir
Autor Tema: Scroll de Imagenes?  (Leído 26,776 veces)
z3nth10n


Desconectado Desconectado

Mensajes: 1.583


"Jack of all trades, master of none." - Zenthion


Ver Perfil WWW
Scroll de Imagenes?
« en: 31 Mayo 2013, 20:38 pm »

Hola muy buenas, pues me estoy copiando un poco de una app...  :xD
Y me gustaría saber como hacer esto:



Como veis a la izquierda hay un menú... Cuando le damos a click al botón se Scrolea... Será muy sencillo pero eso no lo he dado en mi vida y no se como hacerlo...

Luego si le damos con la rueda también se scrolea...

¿Como lo puedo hacer?

Un saludo.


« Última modificación: 31 Mayo 2013, 20:40 pm por Seazoux » En línea


Interesados hablad por Discord.
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.824



Ver Perfil
Re: Scroll de Imagenes?
« Respuesta #1 en: 31 Mayo 2013, 22:23 pm »

Es bastante fácil, mira:

1.Como contenedor usa un panel.

2.Metes dentro los pictureboxes que quieras (preferiblemente añádelos en tiempo de ejecución, porque si tienes que meter 30 o 50 pictureboxes... se te va a quedar pequeña la pantalla para agrandar el panel e ir metiendoles desde el designer xD)

3. Y ya el resto es símplemente usar las scrollbar del panel "Panel1.VerticalScroll." (Aunque no las tengas activas ni estén visibles, puedes usarlas para scrollear).

Puedes capturar la rueda del botón en el evento "Panel1.MouseWheel" de la forma que ya has visto en uno de mis codes,
Y si quieres hacer medio transparente el panel es suficiente con que uses un color ARGB, donde la A es el canal Alpha (transparencia), el valor máximo es 255, si lo pones a 125 pues el panel se verá al 50% de transparencia.


Es una versión barata, te puede dar algunos problemas de Flickering (parpadeos) como se puede apreciar en el vídeo, me gustaría saber evitar los problemas de flickering, pero esto es WindowsForms y creeme que he preguntado a 1.000 expertos y nadie tiene la respuesta xD, es lo que hay.

PD: ¿Esperabas un code?  >:D

Saludos


« Última modificación: 31 Mayo 2013, 22:26 pm por EleKtro H@cker » En línea

z3nth10n


Desconectado Desconectado

Mensajes: 1.583


"Jack of all trades, master of none." - Zenthion


Ver Perfil WWW
Re: Scroll de Imagenes?
« Respuesta #2 en: 31 Mayo 2013, 22:55 pm »

Y se puede hacer que vaya imagen por imagen en vez de un Scroll fluido? :silbar:
En línea


Interesados hablad por Discord.
kub0x
Enlightenment Seeker
Moderador
***
Desconectado Desconectado

Mensajes: 1.486


S3C M4NI4C


Ver Perfil
Re: Scroll de Imagenes?
« Respuesta #3 en: 31 Mayo 2013, 23:01 pm »

Es una versión barata, te puede dar algunos problemas de Flickering (parpadeos) como se puede apreciar en el vídeo, me gustaría saber evitar los problemas de flickering, pero esto es WindowsForms y creeme que he preguntado a 1.000 expertos y nadie tiene la respuesta xD, es lo que hay.

EleKtro si no quieres flickering no utilices Windows Forms. Para ello tienes WPF, tecnología que utiliza la aceleración por hardware (GPU) para el procesamiento gráfico, no como Windows Forms que utiliza el procesador para todo tipo de cómputo.

Ahora estoy sufriendo ya que he lanzado una aplicación comercial bastante amplia y necesita un par de toques gráficos. Al haberla implementado en Win Forms la app consume bastantes recursos al presentar gráficos y animaciones. Espero que si todo me va bien poder portarla a WPF.

P.D = WPF trabaja en el diseño de los controles con XAML, ni te puedes imaginar las maravillas que se pueden conseguir con éste.

Seazoux, no te recomiendo "petar" mucho la aplicación o ya verás lo que pasará xD.

Saludos!
En línea

Viejos siempre viejos,
Ellos tienen el poder,
Y la juventud,
¡En el ataúd! Criaturas Al poder.

Visita mi perfil en ResearchGate

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.824



Ver Perfil
Re: Scroll de Imagenes?
« Respuesta #4 en: 31 Mayo 2013, 23:09 pm »

Tienes razón Kubox, yo siempre digo que para trabajar con transparencias hay que usar WPF y para lo del Flickering también, pero tooodo cambia en WPF, se me hace complejo, el hecho de crear un proyecto en WPF, aprender XAML, asimilar el hecho de volver a aprender todo lo que llevo aprendido en WindowsForms para poder "trasladarlo" a la sintaxis y los métodos de WPF... No me motiva nada, más bien me desespera.

Recuerdo una vez, no hace mucho, intenté usar un código de un WF en un WPF, para ello necesitaba un timer, y no hay timer en WPF, sé que puedo buscar el equivalente de un Timer en un WPF, pero es que diréctamente cerré el proyecto y me olvidé, porque para cada cosa voy a tener que ir buscando su equivalente y cambiar cada pequeña cosa, se me queda muy grande WPF.

Gracias por tu consejo Kubox





@Seazoux
Y se puede hacer que vaya imagen por imagen en vez de un Scroll fluido? :silbar:

Usé un timer para el scroll progresivo, perféctamente se puede hacer "imágen por imágen", lo que te permita tu imaginación (verticalscrollbar.value = )xD

Saludos
« Última modificación: 31 Mayo 2013, 23:10 pm por EleKtro H@cker » En línea

z3nth10n


Desconectado Desconectado

Mensajes: 1.583


"Jack of all trades, master of none." - Zenthion


Ver Perfil WWW
Re: Scroll de Imagenes?
« Respuesta #5 en: 31 Mayo 2013, 23:52 pm »

Por las transparencias no te preocupes... Me vas a tener que ayudar con los codes... ya que no puedo estar mucho tiempo en el PC  :-\

Puedes ayudarme?  :(



Tengo un pequeño problema...

Uno quiero hacer que cuando este sobre la imagen la imagen se amplie, y que salga los dos botones que se puede ver en el pantallazo...

Dos quiero hacer que cuando se clique en un boton (el de añadir) y lo selecciones de una lista que usara PHP y MySQL te cree un control (PictureBox) con los datos que no se aun si sacaros de un TXT  :-\



Seazoux, no te recomiendo "petar" mucho la aplicación o ya verás lo que pasará xD.

Que puede pasar? :o
« Última modificación: 1 Junio 2013, 12:11 pm por Seazoux » En línea


Interesados hablad por Discord.
BlackM4ster


Desconectado Desconectado

Mensajes: 499


Error, el teclado no funciona. Pulse F1 para continuar


Ver Perfil WWW
Re: Scroll de Imagenes?
« Respuesta #6 en: 1 Junio 2013, 17:03 pm »

Te paso mi solución personal:

Es un poco *****, pero es la idea  :silbar:
https://www.dropbox.com/s/i5fi777zqpdutlj/ListaImagenes.rar
En línea

- Pásate por mi web -
https://codeisc.com
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.824



Ver Perfil
Re: Scroll de Imagenes?
« Respuesta #7 en: 1 Junio 2013, 17:53 pm »

Ahora que leo ese último comentario, se me olvidó pasarte el form del video xD:

Añade en el form:
1 un panel y métele pictureboxes
1 botón para scrollear hacia arriba
1 botón apra scrollear hacia abajo

Código
  1. Public Class Form1
  2.  
  3.    Dim Scroll_Position As Int32 = 0
  4.    Dim Button_Down_Is_Pressed As Boolean = False
  5.    Dim Button_Up_Is_Pressed As Boolean = False
  6.    Dim WithEvents Progressive_Scroll_Timer As New Timer
  7.    Dim SmallChange As Int32 = 5
  8.    Dim Largechange As Int32 = 10
  9.  
  10.    ' Sub which reduces the Flickering, but this sub makes x20 times slower any operation of any Form/Application.
  11.    Protected Overrides ReadOnly Property CreateParams() As CreateParams
  12.        Get
  13.            Dim cp As CreateParams = MyBase.CreateParams
  14.            cp.ExStyle = cp.ExStyle Or &H2000000
  15.            Return cp
  16.        End Get
  17.    End Property 'CreateParams
  18.  
  19.    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  20.        Me.ResumeLayout(False)
  21.        Panel1.ResumeLayout(False)
  22.  
  23.        Panel1.VerticalScroll.Maximum = 999999999
  24.        Progressive_Scroll_Timer.Interval = 50
  25.        Panel1.BackColor = Color.FromArgb(150, 0, 0, 0)
  26.    End Sub
  27.  
  28.    Private Sub Panel_MouseHover(sender As Object, e As EventArgs) Handles Panel1.MouseHover
  29.        sender.focus()
  30.    End Sub
  31.  
  32.    Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Progressive_Scroll_Timer.Tick
  33.        If Button_Down_Is_Pressed Then
  34.            Scroll_Down(SmallChange)
  35.        ElseIf Button_Up_Is_Pressed Then
  36.            Scroll_Up(SmallChange)
  37.        Else
  38.            sender.stop()
  39.        End If
  40.    End Sub
  41.  
  42.    Private Sub Scroll_Up(ByVal Change As Int32)
  43.        Scroll_Position -= Change
  44.        Try : Panel1.VerticalScroll.Value = Scroll_Position : Catch : Scroll_Position += Change : End Try
  45.    End Sub
  46.  
  47.    Private Sub Scroll_Down(ByVal Change As Int32)
  48.        Scroll_Position += Change
  49.        Try : Panel1.VerticalScroll.Value = Scroll_Position : Catch : Scroll_Position -= Change : End Try
  50.    End Sub
  51.  
  52.    Private Sub Button_Down_MouseDown(sender As Object, e As MouseEventArgs) Handles Button2.MouseDown
  53.        If e.Button = Windows.Forms.MouseButtons.Left Then
  54.            Button_Down_Is_Pressed = True
  55.            Progressive_Scroll_Timer.Start()
  56.        End If
  57.    End Sub
  58.  
  59.    Private Sub Button_Up_MouseDown(sender As Object, e As MouseEventArgs) Handles Button1.MouseDown
  60.        If e.Button = Windows.Forms.MouseButtons.Left Then
  61.            Button_Up_Is_Pressed = True
  62.            Progressive_Scroll_Timer.Start()
  63.        End If
  64.    End Sub
  65.  
  66.    Private Sub Button_Down_MouseUp(sender As Object, e As MouseEventArgs) Handles Button2.MouseUp
  67.        Button_Down_Is_Pressed = False
  68.    End Sub
  69.  
  70.    Private Sub Button_Up_MouseUp(sender As Object, e As MouseEventArgs) Handles Button1.MouseUp
  71.        Button_Up_Is_Pressed = False
  72.    End Sub
  73.  
  74.    Private Sub Form_MouseWheel(ByVal sender As Object, ByVal e As MouseEventArgs) Handles Panel1.MouseWheel
  75.        If Panel1.Focused Then
  76.            Select Case Math.Sign(e.Delta)
  77.                Case Is > 0 : Scroll_Up(Largechange)
  78.                Case Is < 0 : Scroll_Down(Largechange)
  79.            End Select
  80.        End If
  81.    End Sub
  82.  
  83. End Class

salu2
En línea

z3nth10n


Desconectado Desconectado

Mensajes: 1.583


"Jack of all trades, master of none." - Zenthion


Ver Perfil WWW
Re: Scroll de Imagenes?
« Respuesta #8 en: 1 Junio 2013, 18:25 pm »

Si es que no Electro, ya le has hecho trabajar al pobre BlackMaster  :xD
« Última modificación: 1 Junio 2013, 18:43 pm por Seazoux » En línea


Interesados hablad por Discord.
BlackM4ster


Desconectado Desconectado

Mensajes: 499


Error, el teclado no funciona. Pulse F1 para continuar


Ver Perfil WWW
Re: Scroll de Imagenes?
« Respuesta #9 en: 1 Junio 2013, 19:53 pm »

jajajajaja
En línea

- Pásate por mi web -
https://codeisc.com
Páginas: [1] 2 3 4 5 6 7 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Scroll
Programación Visual Basic
Piojoman 0 1,584 Último mensaje 20 Octubre 2005, 16:56 pm
por Piojoman
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines