Visual Basic.NET - Acoplar un formulario a la resolución de la pantalla

 
Vista:
sin imagen de perfil
Val: 344
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Acoplar un formulario a la resolución de la pantalla

Publicado por Miguel (281 intervenciones) el 16/10/2019 23:06:48
Estoy probando con este código que he hecho y haciendo en el formulario el Anchor : Top, Left y Bottom me desplaza un textBox que tengo al final y no se muestra. Y si no utilizo el Anchor con el Bottom entonces el datagridview no se me agranda y si muestra el textBox.

Este es el código:
1
2
3
4
5
6
7
8
9
10
Dim F As New FrmClientes
F.Size = New System.Drawing.Size(CInt(pantalla.Bounds.Width.ToString()),
                                                          CInt(pantalla.Bounds.Height.ToString()))
If F.Size.Width = 1280 And F.Size.Height = 1024 Then
    Me.MaximumSize = New System.Drawing.Size(1280, 1024)
ElseIf F.Size.Width = 1280 And F.Size.Height = 800 Then
    Me.MaximumSize = New System.Drawing.Size(1280, 800)
End If
Me.Location = Screen.PrimaryScreen.WorkingArea.Location
Me.Size = Screen.PrimaryScreen.WorkingArea.Size

Me puede decir que es lo que me falta para que funcione bien.

Muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de gilman
Val: 224
Ha disminuido 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Acoplar un formulario a la resolución de la pantalla

Publicado por gilman (81 intervenciones) el 17/10/2019 08:48:07
Si lo que quieres es que la pantalla ocupe toda la pantalla excepto la barra de tareas, sería mejor que pusieses la propiedad WindowState a Maximized.
En cuanto al problema con los Anchor, deberías poner el diseño del formulario para ver que es lo que está pasando
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 344
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Acoplar un formulario a la resolución de la pantalla

Publicado por Miguel (281 intervenciones) el 19/10/2019 20:12:03
No entiendo lo de poner el diseño del formulario. Y sobre poner WindowsState donde lo pongo pues donde lo estoy utilizando que es en estas dos linea Me.MaximumSize = New System.Drawing.Size(1280, 1024) no se puede. Se que tengo algo mal pero de momento soy incapaz de verlo. Creo entender que la linea donde detecto la resolución de la pantalla esta bien pero la asignación que hago en la linea del maximunsize. esta mal y es aqui donde he probado lo que me estas indicando.
Así que si me indicas que cambios hacer en el código que puse te lo agradecería.


Gracias y un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Acoplar un formulario a la resolución de la pantalla

Publicado por Phil Rob (1546 intervenciones) el 17/10/2019 16:00:31
Hola Miguel,


Gilman tiene razón. Tu código ajustar la tamaña del formulario según la tamaña de la pantalla.

Para esta, el código siguiente es suficiente :

1
Me.WindowState = Windows.Forms.FormWindowState.Maximized

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 344
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Acoplar un formulario a la resolución de la pantalla

Publicado por Miguel (281 intervenciones) el 19/10/2019 20:12:26
No entiendo lo de poner el diseño del formulario. Y sobre poner WindowsState donde lo pongo pues donde lo estoy utilizando que es en estas dos linea Me.MaximumSize = New System.Drawing.Size(1280, 1024) no se puede. Se que tengo algo mal pero de momento soy incapaz de verlo. Creo entender que la linea donde detecto la resolución de la pantalla esta bien pero la asignación que hago en la linea del maximunsize. esta mal y es aqui donde he probado lo que me estas indicando.
Así que si me indicas que cambios hacer en el código que puse te lo agradecería.


Gracias y un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de gilman
Val: 224
Ha disminuido 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Acoplar un formulario a la resolución de la pantalla

Publicado por gilman (81 intervenciones) el 20/10/2019 08:41:52
Por poner el diseño del formulario me refiero a que pongas una imagen con el formulario, algo así como esto:

Escritorio

Como tambien puedes ver en la imagen, puedes poner la propiedad WindowsState en tiempo de diseño
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Acoplar un formulario a la resolución de la pantalla

Publicado por Phil Rob (1546 intervenciones) el 20/10/2019 11:25:31
Hola Miguel,

No comprendo que quieres conocer la tamaña de la pantalla, quizá no he comprendido el problema ...

Puedes hacer como lo proponga Gilman, en modificando las propiedades.

Si quieres lo hacer en el codigo, tienes que poner mi linea en el evento Load :
1
2
3
Private Sub Test1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Me.WindowState = Windows.Forms.FormWindowState.Maximized
' ...

Que tenga un buen dias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 344
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Acoplar un formulario a la resolución de la pantalla

Publicado por Miguel (281 intervenciones) el 20/10/2019 19:02:52
Este es el form_Load que tengo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
'******************Evento Load del formulario ************'
Private Sub FrmClientes_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Me.WindowState = Windows.Forms.FormWindowState.Maximized
    Dim F As New FrmClientes
    F.Size = New System.Drawing.Size(CInt(pantalla.Bounds.Width.ToString()), CInt(pantalla.Bounds.Height.ToString()))
    If F.Size.Width = 1280 And F.Size.Height = 1024 Then
        Me.MaximumSize = New System.Drawing.Size(1280, 1024)
    ElseIf F.Size.Width = 1280 And F.Size.Height = 800 Then
        Me.MaximumSize = New System.Drawing.Size(1280, 800)
    End If
    Me.Location = Screen.PrimaryScreen.WorkingArea.Location
    Me.Size = Screen.PrimaryScreen.WorkingArea.Size
    Botones(False)
    If objFuncion.ExisteFile("Clientes") = True Then
        If objCliente.GetContador() = True Then
            Call ListarClientes()
        Else
            Throw New Exception("La tabla de clientes esta vacia, proceda a cargar los datos")
        End If
    Else
        Throw New Exception("La tabla de clientes no existe, proceda a crearla")
    End If
End Sub

Y este es el formulario que te adjunto.

Si me das un correo te puedo mandar todo el código del formulario o todo el proyecto con una copia del Sql Server de la B.D. no tengo ningún problema.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Acoplar un formulario a la resolución de la pantalla

Publicado por Phil Rob (1546 intervenciones) el 20/10/2019 21:49:03
Hola Miguel,

Creo que no comprendo tu objetivo ...
Si es de llenar la pantalla con el formulario, entonces mi línea de código es suficiente (o la solucione de Tilman).
Pero tienes que eliminas algunas líneas :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Private Sub FrmClientes_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
 
    Me.WindowState = Windows.Forms.FormWindowState.Maximized
 
'    Dim F As New FrmClientes
'    F.Size = New System.Drawing.Size(CInt(pantalla.Bounds.Width.ToString()), CInt(pantalla.Bounds.Height.ToString()))
'    If F.Size.Width = 1280 And F.Size.Height = 1024 Then
'        Me.MaximumSize = New System.Drawing.Size(1280, 1024)
'    ElseIf F.Size.Width = 1280 And F.Size.Height = 800 Then
'        Me.MaximumSize = New System.Drawing.Size(1280, 800)
'    End If
'    Me.Location = Screen.PrimaryScreen.WorkingArea.Location
'    Me.Size = Screen.PrimaryScreen.WorkingArea.Size
' ... ... ...

Si no comprendo tu objetivo, quizá puedes probar me explicar ...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 344
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Acoplar un formulario a la resolución de la pantalla

Publicado por Miguel (281 intervenciones) el 22/10/2019 16:13:35
Yo quiero maximizar el formulario pero también el contenido de acuerdo al tamaño de la nueva resolución. También he probado con una función pasando como parámetros la el formulario la anchura y la altura pero no consigo controlar el tamaño del contenido.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Acoplar un formulario a la resolución de la pantalla

Publicado por Phil Rob (1546 intervenciones) el 22/10/2019 17:42:04
Hola Miguel,

No puedes ajustar la tamaña del contenido como este.

Miras el video y dice me si este es que lo quieras. Si es el caso, buscare ejemplos.

Atención, no todo es posible, en el video veas veces problemas.

https://www.dropbox.com/s/pn0xhvmllwvsup2/Savon.mp4?dl=0

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 344
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Acoplar un formulario a la resolución de la pantalla

Publicado por Miguel (281 intervenciones) el 20/10/2019 19:39:12
Este es fichero donde de las pruebas por error había mandado el de clientes

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Private Sub FrmAlmacen_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim F As New FrmAlmacen
F.Size = New System.Drawing.Size(CInt(pantalla.Bounds.Width.ToString()), CInt(pantalla.Bounds.Height.ToString()))
If F.Size.Width = 1280 And F.Size.Height = 1024 Then
Me.WindowState = Windows.Forms.FormWindowState.Maximized
F.Location = Screen.PrimaryScreen.WorkingArea.Location
F.Size = Screen.PrimaryScreen.WorkingArea.Size
Me.MaximumSize = New System.Drawing.Size(F.Size.Width, F.Size.Height)
ElseIf F.Size.Width = 1280 And F.Size.Height = 800 Then
Me.MaximumSize = New System.Drawing.Size(1280, 800)
End If
Botones(False)
If objFuncion.ExisteFile("Almacen") = True Then
If objAlmacen.GetContador() = True Then
Call ListarAlmacenes()
Else
Throw New Exception("La tabla de clientes esta vacia, proceda a cargar los datos")
End If
Else
Throw New Exception("La tabla de clientes no existe, proceda a crearala")
End If
End Sub

Te adjunto el formulario
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 344
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Acoplar un formulario a la resolución de la pantalla

Publicado por Miguel (281 intervenciones) el 20/10/2019 19:38:18
Este es fichero donde de las pruebas por error había mandado el de clientes

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Private Sub FrmAlmacen_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Dim F As New FrmAlmacen
    F.Size = New System.Drawing.Size(CInt(pantalla.Bounds.Width.ToString()), CInt(pantalla.Bounds.Height.ToString()))
    If F.Size.Width = 1280 And F.Size.Height = 1024 Then
        Me.WindowState = Windows.Forms.FormWindowState.Maximized
        F.Location = Screen.PrimaryScreen.WorkingArea.Location
        F.Size = Screen.PrimaryScreen.WorkingArea.Size
        Me.MaximumSize = New System.Drawing.Size(F.Size.Width, F.Size.Height)
    ElseIf F.Size.Width = 1280 And F.Size.Height = 800 Then
        Me.MaximumSize = New System.Drawing.Size(1280, 800)
    End If
    Botones(False)
    If objFuncion.ExisteFile("Almacen") = True Then
        If objAlmacen.GetContador() = True Then
            Call ListarAlmacenes()
        Else
            Throw New Exception("La tabla de clientes esta vacia, proceda a cargar los datos")
        End If
    Else
        Throw New Exception("La tabla de clientes no existe, proceda a crearala")
    End If
End Sub

Te adjunto el formulario
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Javier
Val: 150
Ha disminuido 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Acoplar un formulario a la resolución de la pantalla

Publicado por Javier (77 intervenciones) el 22/10/2019 23:32:51
Checate el control TableLayoutPanel, tal vez eso te sirva para el re dimensionamiento al que quieres llegar, es un poco tedioso pero te soluciona andar calculando medidas y adapta el tamaño de los controles al tamaño de la ventana.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Acoplar un formulario a la resolución de la pantalla

Publicado por Phil Rob (1546 intervenciones) el 23/10/2019 09:02:02
Hola Miguel,

Javier tiene razón. Para ajustar la pantalla y todo el contenido, tienes que utilizar TableLayoutPanel y/o Panel y/o Splitter …, y ajustar las propiedades Dock y veces Anchor.
En el video que te envió, no utilizo TableLayoutPanel porque creo que este es eficacia para los formularios divididos en rectángulos, no es el caso de mi pantalla en el video.

Los ajustamientos no están fáciles.

Que tenga un buen dias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 344
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Acoplar un formulario a la resolución de la pantalla

Publicado por Miguel (281 intervenciones) el 27/10/2019 18:21:42
Gracias por tu tiempo Phil pero al final creo que voy a desistir pues en un foro que suelo entrar me dijeron que para eso tenía que utilizar las Apis de Windows y que la complejidad que tiene y las actualizaciones que hace Microsoft de las mismas no compensan el trabajo.
De todas formas agradezco la atención que me has prestado

¿Al final hiciste algo con el programa del correo?. Después de darle muchas vueltas decidí no utilizarlo en el proyecto pues no me sedujo nada el quitar la seguridad del gmail.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Acoplar un formulario a la resolución de la pantalla

Publicado por Phil Rob (1546 intervenciones) el 27/10/2019 21:57:04
Hola Miguel,

No he utilizado las Apis Google para ajustar la seguridad de Gmail. No tenía la necesita para me y este proyecto estaba difícil …

No es exacto que las Apis Windows están necesario para ajustar formularios y pantallas, pero estes ajustamientos también están muy difícil …

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 344
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Acoplar un formulario a la resolución de la pantalla

Publicado por Miguel (281 intervenciones) el 27/10/2019 18:14:22
Gracias por la información que me has pasado Javier pero al final creo que voy a desistir pues en un foro que suelo entrar me dijeron que para eso tenía que utilizar las Apis de Windows y que la complejidad que tiene y las actualizaciones que hace Microsoft de las mismas no compensan el trabajo.
De todas formas agradezco la atención que me has prestado .

Gracias y un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Javier
Val: 150
Ha disminuido 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Acoplar un formulario a la resolución de la pantalla

Publicado por Javier (77 intervenciones) el 27/10/2019 22:38:45
Hola, no creo que requieras utilizar las Apis de windows, a menos que no este entendiendo bien lo que quieres lograr, pero igual, suerte con tu proyecto y ojala, decidas lo que decidas, llegues a buen termino.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 344
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Acoplar un formulario a la resolución de la pantalla

Publicado por Miguel (281 intervenciones) el 27/10/2019 18:24:32
Gracias por la información que me has pasado Gilman pero al final creo que voy a desistir pues en un foro que suelo entrar me dijeron que para eso tenía que utilizar las Apis de Windows y que la complejidad que tiene y las actualizaciones que hace Microsoft de las mismas no compensan el trabajo.
De todas formas agradezco la ayuda que me has prestado .

Gracias y un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de gilman
Val: 224
Ha disminuido 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Acoplar un formulario a la resolución de la pantalla

Publicado por gilman (81 intervenciones) el 28/10/2019 08:46:29
No se quién te ha dicho que tienes que usar APIs, ni siquiera en VB6 es necesario.
En VBNet la mayor parte de las veces será suficiente con especificar correctamente las propiedades Anchor y Dock de los controles,
en tu caso el grid debería tener la propiedad Anchor a Left Top Right Bottom con lo que la distancia de los margenes será siempre la misma y crecerá según crezca el formulario.
Para que el grid no 'tape' al frame de busquedas éste debería tener la propiedad Anchor a Left Bottom, si quieres que determinados controles sigan centrados, puedes controlar el evento resize del form, o usar, tal y como te han recomendado, el control TableLayoutPanel , yo no he tenido necesidad de usarlo nunca, ya que con las propiedades Anchor y Dock, me ha sido suficiente, prueba a usarlos y ver los efectos que producen cuando cambias el tamaño de los forms.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar