Ir para o conteúdo
marcoferreira

Matriz

Mensagens Recomendadas

marcoferreira    0
marcoferreira

Boas pessoal.

Alguem me sabe dizer como faço para programar um botao duma matriz de botoes ?

Se quiserem que ponha algum código ...

cumpz

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
marcoferreira    0
marcoferreira

Eu fiz isto:

Dim tabuleiro(altura, largura) As Button

E aparece-me a matriz com todos os botoes que quero, o que eu queria saber agora era como programar dentro desses botoes...

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
jpaulino    106
jpaulino

Ok, está (estava) na secção errada!

Então defines o teu array de botões

Dim tabuleiro(altura, largura) As Button

Depois adicionar os botões ao teu array/form

tabuleiro(0, 0) = New Button
Me.Controls.Add(tabuleiro(0, 0))

Para acederes a qualquer botão do array só tens de fazer:

tabuleiro(1, 0).Enabled = False

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
marcoferreira    0
marcoferreira

E como é que eu faço para descobrir que o botão foi clicado ?

Já estou a conseguir editar , obrigado pela ajuda -

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
marcoferreira    0
marcoferreira

Não defeni , vou mandar o código completo para mostrar como fiz .

Declarei o tabuleiro , depois a matriz . Altura e largura o numero de botoes pertencentes no tabuleiro.

 Dim altura As Integer = 7 
Dim largura As Integer = 7
Dim tabuleiro(altura, largura) As Button 
Dim matriz(altura, largura) As Integer

Depois fiz um ciclo for para preencher o tabuleiro.

For x = 0 To altura

            For y = 0 To largura

                tabuleiro(x, y) = New Button
                tabuleiro(x, y).Top = x * blargura + 50
                tabuleiro(x, y).Width = blargura
                tabuleiro(x, y).Height = baltura
                tabuleiro(x, y).Left = y * baltura + 50
                tabuleiro(x, y).BackColor = Color.White
                tabuleiro(x, y).FlatStyle = FlatStyle.Standard
                tabuleiro(x, y).Enabled = True
                tabuleiro(x, y).Visible = True
                tabuleiro(x, y).Show()
                tabuleiro(x, y).BringToFront()
                tabuleiro(x, y).Name = "OK"
                Controls.Add(tabuleiro(x, y))
matriz(0, 1) = 1
                matriz(0, 3) = 1
                matriz(0, 5) = 1
  Next

        Next

E agora queria programar o botão para quando fosse clicado verificar as jogadas possiveis, por exemplo clicava no botao (0,0) e depois o botao (1,1) sendo a jogada possivel, aparecia destacado , para fazer o movimento da peça .

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
CrzB    0
CrzB

Não defeni , vou mandar o código completo para mostrar como fiz .

Declarei o tabuleiro , depois a matriz . Altura e largura o numero de botoes pertencentes no tabuleiro.

 Dim altura As Integer = 7 
Dim largura As Integer = 7
Dim tabuleiro(altura, largura) As Button 
Dim matriz(altura, largura) As Integer

Depois fiz um ciclo for para preencher o tabuleiro.

For x = 0 To altura

            For y = 0 To largura

                tabuleiro(x, y) = New Button
                tabuleiro(x, y).Top = x * blargura + 50
                tabuleiro(x, y).Width = blargura
                tabuleiro(x, y).Height = baltura
                tabuleiro(x, y).Left = y * baltura + 50
                tabuleiro(x, y).BackColor = Color.White
                tabuleiro(x, y).FlatStyle = FlatStyle.Standard
                tabuleiro(x, y).Enabled = True
                tabuleiro(x, y).Visible = True
                tabuleiro(x, y).Show()
                tabuleiro(x, y).BringToFront()
                tabuleiro(x, y).Name = "OK"
                Controls.Add(tabuleiro(x, y))
matriz(0, 1) = 1
                matriz(0, 3) = 1
                matriz(0, 5) = 1
  Next

        Next

E agora queria programar o botão para quando fosse clicado verificar as jogadas possiveis, por exemplo clicava no botao (0,0) e depois o botao (1,1) sendo a jogada possivel, aparecia destacado , para fazer o movimento da peça .

Boas.

É simples fazes:

Select Case index

Case (0,1)

    ...........

    ...........

Case (0,2)

      ..........

end select

Fazes isto no evento do click do botao claro.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
jpaulino    106
jpaulino

Depois de adicionares o control o form, e ainda dentro do ciclo, fazer o seguinte:

AddHandler tabuleiro(x, y).Click, AddressOf btnClick

Depois podes ver qual foi o botão pressionado:

    Sub btnClick(ByVal sender As Object, ByVal e As System.EventArgs)
        Dim btn As Button = DirectCast(sender, Button)
        btn.Enabled = False
    End Sub

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
marcoferreira    0
marcoferreira

De momento estou no trabalho por isso nao posso exprimentar esse código xS

Assim que o fizer , respondo.

Mas isso vai me premitir programar o evento click de cada um dos botoes do tabuleiro ?

Muito obrigado pela ajuda ;)

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
PNDmartins    0
PNDmartins

O AddHandler que o jpaulino colocou vai-te "dizer" ao VB, que quando um botão for carregado, para correr a sub btnClick. Ou seja, sempre um botão for carregado, o código que tiveres no btnclick vai ser executado independentemente de qual dos botões carregas-te.

Depois dentro desse evento tens é que arranjar uma forma de identificar qual o butão clickado.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
marcoferreira    0
marcoferreira

Estive agora a exprimentar o código , e funciona.

E eu pensei em fazer um handler para cada botao , mas dá me erro

Escrevi assim :

AddHandler tabuleiro(2, 1).Click, AddressOf btnclick

Partilhar esta mensagem


Link 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