none
Mover una imagen del centro a la esquina superior en vb. RRS feed

  • Pregunta

  • Hola Colegas, Quería saber si es posible llevar a cabo la siguiente idea:

    Tengo un form y en el, tengo dos Picturebox:

    Picturebox1 carga un logotipo (imagen) ubicados en el centro,

    Picturebox2 queda en espera.....

    tango también un timer para controlar el tiempo.

    Al iniciar el form se muestra el Picturebox1 al centro del fromulario, mientras el Picturebox2 esta  oculta

    Bueno en el form tengo un código, que me mide el tiempo de inactividad y cuando llega al máximo que a manera de prueba le he puesto 5 segundo  quiero que el picturebox1 se mueva del centro a la esquina superior y una vez que llegue a la esquina que se quede ahi y que se muestre el picturebox2 el cual comenzara a cargar unas imágenes automáticamente y cuando ocurra una actividad que este proceso se revierta al contrario, es decir, que el picturebox2 se desaparezca y que el picturebox1 se mueva a su punto de origen que es el centro del form.

    Nota: Cuando el picturebox1 se mueva hacia la esquina superior que a la vez vaya disminuyendo su tamaño de igual forma al volver a su punto  de origen que vaya aumentando su tamaño de manera que quede igual que empezó.

    dibuje un ejemplo sencillo de la forma en la que deseo se mueva el picturebox1 :

    Bueno ahí les muestro el sentido en el que se estaría moviendo el picturebox1, prácticamente el movimiento del picturebox1 es lo que me hace falta por que el resto ya lo tengo..A continuación les muestro el código que tengo hasta este momento...

    Un saludo y muchas gracias de antemano.

    Imports System
    Imports System.Drawing
    Imports System.Windows.Forms
    Imports System.Drawing.Drawing2D
    Imports System.Drawing.Text
    Imports System.Runtime.InteropServices
    Public Class LogoEmpresa
        Const TextTimerInterval As Integer = 15
        Protected currentGradientShift As Integer = 10
        Protected gradiantStep As Integer = 5
        <DllImport("User32.dll")>
        Private Shared Function GetLastInputInfo(ByRef lii As LASTINPUTINFO) As Boolean
        End Function
        Structure LASTINPUTINFO
            Public cbSize As Integer
            Public dwTime As Integer
        End Structure
        Private Input As New LASTINPUTINFO()
        Private Sub TimerOnTick(sender As Object, e As EventArgs)
            GetLastInputInfo(Input)
            Dim total As Integer = Environment.TickCount
            Dim ultimo As Integer = Input.dwTime
            Dim intervalo As Integer = (total - ultimo) \ 1000
            If intervalo = 0 Then
                Me.PictureBox2.Visible = False
                Me.pictureBox1.Visible = True
            Else
                For intervalo = 3 To intervalo
                    Me.pictureBox1.Visible = False
                    Me.PictureBox2.Visible = True
                    Me.PictureBox2.Dock = DockStyle.Fill
                    Me.PictureBox2.SizeMode = PictureBoxSizeMode.Zoom
                    Dim numeroImagenes As Integer
                    Dim aleatorio As Integer
                    Dim ficheros As String() = System.IO.Directory.GetFiles("C:\Users\Desarrollo\Desktop\My projects vb 2017\ProyectoAlmacenStarOn24_10_2018\ImagenesSistemas", "*.png")
                    numeroImagenes = ficheros.Length
                    aleatorio = New Random().Next(0, numeroImagenes)
                    Me.PictureBox2.ImageLocation = ficheros(aleatorio)
                Next
            End If
    
    
        End Sub
        Private Sub LogoEmpresa_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            Input.cbSize = Marshal.SizeOf(Input)
            AddHandler Timer1.Tick, AddressOf TimerOnTick
            Timer1.Interval = 1000
            Timer1.Start()
    
            Me.PictureBox2.Visible = False
            pictureBox1.Location = New Point((Me.Width / 2) + (pictureBox1.Width / 2), (Me.Height / 2) - (pictureBox1.Height / 2))
    
            ' pictureBox1.Location = New Point((My.Forms.LogoEmpresa.Panelcaja.Width / 2) - (pictureBox1.Width / 2), (My.Forms.LogoEmpresa.Panelcaja.Height / 2) - (pictureBox1.Height / 2))
            ''Dim ancho As Int32 = (Me.Width - pictureBox1.Width) / 2
            ''Me.pictureBox1.Location = New Point(ancho, pictureBox1.Location.Y)
    
        End Sub
    
    
    
    End Class



     

    martes, 11 de diciembre de 2018 21:13

Respuestas


  • Hola  Reynaldo Sanchez

    Gracias por levantar tu consulta en los foros de MSDN. Con respecto a la misma, te comento que estaremos realizando una revisión a profundidad acerca del inconveniente que se te está presentando.

    Proporcionaremos una respuesta lo más pronto posible.

    Gracias por usar los foros de MSDN.

    Pedro Alfaro
     ____

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde. 

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.  

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.
    miércoles, 12 de diciembre de 2018 15:18
    Moderador