Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

sergiofer

Fixar posição de Form

Mensagens Recomendadas

sergiofer

Olá

Tenho necessidade de fixar a posição de uma janela no centro do ecran. Alguém me pode ajudar?

Obrigado desde já

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pmaster

Bom dia

Não sei se é isto que queres, mas se quiseres defenir a posição da janela podes usar:

Me.Location = New Point(30, 90)

mas se a quiseres fixar sem o utilizador poder arrastar, nas propriedades da form em FormBorderStyle colocas "None"

Espero que seja isto que procuras..

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bioshock

Fixar por completo, sem poder mexer? Ou fixar no meio simplesmente? Se assim for, tens nas propriedades do form, a opção: "Startposition" e escolhes a "CenterScreen".

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
jpaulino

Vê este exemplo de como o fazer:

Imports System.ComponentModel
Imports System.Windows.Forms

Public Class MoveableForm
    Inherits Form

    Private Const WM_NCLBUTTONDOWN As Int32 = &HA1
    Private Const WM_SYSCOMMAND As Int32 = &H112

    Private Const HTCAPTION As Int32 = &H2

    Private Const SC_MOVE As Int32 = &HF010

    Private m_Moveable As Boolean

    Public Sub New()
        MyBase.New()
        Me.Moveable = True
    End Sub

    < _
        Category("Behavior"), _
        Description("Allows the form to be moved.") _
    > _
    Public Property Moveable() As Boolean
        Get
            Return m_Moveable
        End Get
        Set(ByVal Value As Boolean)
            m_Moveable = Value
        End Set
    End Property

    Protected Overrides Sub WndProc(ByRef m As Message)
        If Not m_Moveable Then
            If _
                ( _
                    m.Msg = WM_SYSCOMMAND AndAlso _
                    m.WParam.ToInt32() = SC_MOVE _
                ) _
                OrElse _
                ( _
                    m.Msg = WM_NCLBUTTONDOWN AndAlso _
                    m.WParam.ToInt32() = HTCAPTION _
                ) _
            Then
                Return
            End If
        End If
        MyBase.WndProc(m)
    End Sub
End Class

Fonte: Preventing a form from being moved

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
sergiofer

Vê este exemplo de como o fazer:

Imports System.ComponentModel
Imports System.Windows.Forms

Public Class MoveableForm
    Inherits Form

    Private Const WM_NCLBUTTONDOWN As Int32 = &HA1
    Private Const WM_SYSCOMMAND As Int32 = &H112

    Private Const HTCAPTION As Int32 = &H2

    Private Const SC_MOVE As Int32 = &HF010

    Private m_Moveable As Boolean

    Public Sub New()
        MyBase.New()
        Me.Moveable = True
    End Sub

    < _
        Category("Behavior"), _
        Description("Allows the form to be moved.") _
    > _
    Public Property Moveable() As Boolean
        Get
            Return m_Moveable
        End Get
        Set(ByVal Value As Boolean)
            m_Moveable = Value
        End Set
    End Property

    Protected Overrides Sub WndProc(ByRef m As Message)
        If Not m_Moveable Then
            If _
                ( _
                    m.Msg = WM_SYSCOMMAND AndAlso _
                    m.WParam.ToInt32() = SC_MOVE _
                ) _
                OrElse _
                ( _
                    m.Msg = WM_NCLBUTTONDOWN AndAlso _
                    m.WParam.ToInt32() = HTCAPTION _
                ) _
            Then
                Return
            End If
        End If
        MyBase.WndProc(m)
    End Sub
End Class

Fonte: Preventing a form from being moved

Funciona

Será possivel explicares o que faz mais concretamente, e se para fazer isto noutras Forms tenho que colocar o código dentro dessas forms, ou posso colocar na main, e depois utilizar essa propriedade nas restantes forms?

Obrigado a todos pela ajuda

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
jpaulino

Podes criar uma classe que herde as propriedades de um Form e utilizar este código. Depois, na criação de Forms, herdas as propriedades e métodos do classe que criaste.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.