Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: _CrisiS_ en 19 Diciembre 2017, 00:51 am



Título: Form simpre al frente y bloquenado el anteriro form
Publicado por: _CrisiS_ en 19 Diciembre 2017, 00:51 am
Hola amigos, como podria realizar lo siguiente
Tengo un Formulario principal grande y uno secundario pequeño.
Como  podria hacer para cuando se apreté un boton para llamar al Formulario Secundario el Formulario grande de atras se quede bloqueado y no se pueda apretar sus botones hasta que se cierre el secundario que esta abierto actualmente.

Y si es posible que el formulario de atras se pinte de un color gris , si es que se puede

Gracias :D


Título: Re: Form simpre al frente y bloquenado el anteriro form
Publicado por: **Aincrad** en 19 Diciembre 2017, 13:26 pm
es muy fácil solo en vez de usar Form2.Show  usa :

Código
  1. Form2.ShowDialog()

comenta si eso era lo que querias.


Título: Re: Form simpre al frente y bloquenado el anteriro form
Publicado por: _CrisiS_ en 20 Diciembre 2017, 01:45 am
Exacto Bro :D pero abria una forma de pintar el formulario anterior "FOrm1" de color plomo o gris mientras el Form2 esta abierto?


Título: Re: Form simpre al frente y bloquenado el anteriro form
Publicado por: Eleкtro en 20 Diciembre 2017, 12:42 pm
Asumiré que la pregunta se refiere a la tecnología Windows Forms, en ese caso:

abria una forma de pintar el formulario anterior "FOrm1" de color plomo o gris mientras el Form2 esta abierto?

  • Form.BackColor Property - MSDN (https://msdn.microsoft.com/en-us/library/ktb99cf2%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396)

Para los controles puedes usar la misma propiedad, Control.BackColor (aunque, no en todos los controles, ya que el aspecto y color de algunos, como por ejemplo un Button se define mediante el estilo visual aplicado en Windows, y para personalizarlo tendrías que modificar el aspecto visual del control a "Flat", o heredar la clase del control y pintarlo desde cero por ti mismo).



Ejemplo:

Código
  1. Private Sub Form1_EnabledChanged(sender As Object, e As EventArgs) Handles MyBase.EnabledChanged
  2.    Dim f As Form = DirectCast(sender, Form)
  3.  
  4.    If (f.Enabled) Then
  5.        f.BackColor = Form.DefaultBackColor
  6.  
  7.    Else
  8.        f.BackColor = SystemColors.GrayText
  9.  
  10.    End If
  11. End Sub
  12.  
  13. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  14.    Me.Enabled = False
  15.    Dim result As DialogResult = Form2.ShowDialog()
  16.    Me.Enabled = True
  17. End Sub

PD: modifica los colores a tu antojo.

Saludos.