Array
(
)

Mover objetos (botões) no form

Zeh
   - 24 abr 2007

Salve!!!

Estou fazendo meu projeto final para a faculdade, e em uma das aplicações, precisarei que o usuário possa alterar a posição dos botões. Como fazer isso?

Léu
   - 06 set 2007

Olá,

Se for o que entendi.
Coloque o código no evento MouseMove do Butão.

VB 6

If Button = 1 Then
SeuButão.Left = SeuButão.Left + X
SeuButão.Top = SeuButão.Top + Y
End If

VB 2005

Dim X, Y As Single
X = e.Location.X
Y = e.Location.Y
If e.Button = Windows.Forms.MouseButtons.Left Then
SeuButão.Left = SeuButão.Left + X
SeuButão.Top = SeuButão.Top + Y
End If

Tzapquiel
   - 07 abr 2008

Adorei o codigo mas gostaria de saber como salvo a posição do botão pra quando abrir denovo o programa?

Groove
   - 07 abr 2008

depende de onde quer que seja salvo essas configurações
banco de dados
arquivo de texto ou xml (heheh)
chave de registro

cada um deles é um modo diferente

Tzapquiel
   - 07 abr 2008

gostaria de salvar no xml assim o programa pode carregar a posição na hora que abre :lol:

Groove
   - 08 abr 2008

primeiramente fiz em c# funcionou blz, gravando o XML na raiz C:, depois fiz VBnet mas precisa testar pra ve se funciona legal

#Código

Private Function MontaXML(ByVal X As Integer, ByVal y As Integer) As String
        ´estancia a variavel para escrever o xml
        Dim stringbuilder As StringBuilder = New StringBuilder
        ´ ESCREVE O XML 
        stringbuilder.Append("<MontaXML>")
        stringbuilder.Append(("<Horizontal>"  _
                        + (X + "</Horizontal>")))
        stringbuilder.Append(("<Vertical>"  _
                        + (y + "</Vertical>")))
        stringbuilder.Append("</MontaXML>")
        ´ RETORNA UMA STRING NO FORMATO XML 
        Return stringbuilder.ToString
    End Function
    
    Private Sub GravaXML()
        Dim NomeArquivoXML As String = "c:\ConfiguraPosicaoBotao.xml"
        ´aqui passei valores ficticios no qual será passa a posicao atual q está o botão
        Dim XML As String = MontaXML(20, 20).ToString
        ´estanciando a variavel oFile pedindo permiss�o para gravar no arquivo
        Dim oFil As FileStream = New FileStream(NomeArquivoXML, FileMode.Append, FileAccess.Write)
        ´estanciando a variavel oWriter
        Dim oWrite As StreamWriter = New StreamWriter(oFil)
        ´escrevento no arquivo
        oWrite.WriteLine(XML)
        ´fechando
        oWrite.Close
        oFil.Close
    End Sub



não deixe de responder se funcionou!!!

Valew

Tomara eu ter ajudado

Groove
   - 08 abr 2008

Alias o codigo acima vc vai incluido uma linha ( ou melhor uma configuração abaixo da outra como um texto)
exemplo:
#Código

MontaXML><Horizontal>20</Horizontal><Vertical>30</Vertical></MontaXML>


para q isso não aconteça um modo rápido de fazer e excluir o arquivo pois ele cria outro automaticamente, basta inserir a linha
#Código
File.Delete(NomeArquivoXML)

antes da linha
#Código
Dim oFil As FileStream = New FileStream(NomeArquivoXML, FileMode.Append, FileAccess.Write)


Groove
   - 08 abr 2008


Citação:
Alias o codigo acima vc vai incluido uma linha ( ou melhor uma configuração abaixo da outra como um texto)
exemplo:
#Código

MontaXML><Horizontal>20</Horizontal><Vertical>30</Vertical></MontaXML>


para q isso não aconteça um modo rápido de fazer e excluir o arquivo pois ele cria outro automaticamente, basta inserir a linha
#Código
File.Delete(NomeArquivoXML)

antes da linha
#Código
Dim oFil As FileStream = New FileStream(NomeArquivoXML, FileMode.Append, FileAccess.Write)


desculpe mas como aqui naum podemos editar tive q postar novamente
o exemplo certo seria assim

#Código
<MontaXML><Horizontal>20</Horizontal><Vertical>30</Vertical></MontaXML>
<MontaXML><Horizontal>30</Horizontal><Vertical>50</Vertical></MontaXML>
<MontaXML><Horizontal>60</Horizontal><Vertical>20</Vertical></MontaXML>
<MontaXML><Horizontal>40</Horizontal><Vertical>70</Vertical></MontaXML>


Tzapquiel
   - 08 abr 2008

mano vc é o cara mesmo!! hehehe
legal olha eu vou fazer alguns testes pra ver mas na primeira tentativa funfou legal mano!!
vc não quer me ajudar com o outro topico de exibir os icones de uma pasta ?