Ir para conteúdo
Fórum Script Brasil
  • 0

Toolbar


alexandremanowar

Pergunta

Olá pessoal

Minha primeira dúvida é como copiar o valor de um TExtBox de um formulário para uma variável em outro formulário. No vb6 eu fazia assim:

Dim variavel
variavel = Formulario.TextBox.Text
No vb.net eu não estou conseguindo Estou com problemas no toolbar é o seguinte, coloquei o toolbar no formulário mdi criei 4 botões que são novo,abrir,salvar e imprimir, cliquei duas vezes no botão novo e fiz a seguinte função para abrir outro formulário:
mdiFilho.Close()
        mdiFilho = New Nota
        mdiFilho.MdiParent = principal.ActiveForm
        mdiFilho.Show()

testei o botão e funcionou beleza o problema é que todos os botões fazem a mesma função, eu criei os botões com o opção collection da propriedade do toolbar.

Como eu faço parta que cada botão assuma uma função

Alguém pode me ajudar?

Link para o comentário
Compartilhar em outros sites

11 respostass a esta questão

Posts Recomendados

  • 0

Olá pessoal

Minha primeira dúvida é como copiar o valor de um TExtBox de um formulário para uma variável em outro formulário. No vb6 eu fazia assim:

Dim variavel
variavel = Formulario.TextBox.Text
No vb.net eu não estou conseguindo
Isso é uma dúvida comum, e já apareceu por aqui. Por isso, dê uma olhada nestes tópicos: http://scriptbrasil.com.br/forum/index.php?showtopic=60523 http://scriptbrasil.com.br/forum/index.php?showtopic=59690
Estou com problemas no toolbar é o seguinte, coloquei o toolbar no formulário mdi criei  4 botões que são novo,abrir,salvar e imprimir, cliquei duas vezes no botão novo e fiz a seguinte função para abrir outro formulário:
mdiFilho.Close()
        mdiFilho = New Nota
        mdiFilho.MdiParent = principal.ActiveForm
        mdiFilho.Show()
testei o botão e funcionou beleza o problema é que todos os botões fazem a mesma função, eu criei os botões com  o opção collection da propriedade do toolbar. Como eu faço parta que cada botão assuma uma função Alguém pode me ajudar?
Note que dentro no evento ButtonClick você recebe um parâmetro chamado e que possui informações sobre o botão clicado. Faça um teste assim neste evento:
MessageBox.Show(e.Button.Text)

Você verá que cada botão irá retornar o texto referente ao mesmo.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

E ae Graymalkin beleza

Cara resolvi o problema do ToolBar, ficou legal, mas estou com problema em copiar o valor do TextBox do form2 para o form1, Olha como estou fazendo:

Dim f As New Nota
        Dim teste

        teste = f.txtnatureza.Text

        MsgBox(teste, MsgBoxStyle.Information, "ok")

Quero que o valor do form2 apareça no Msgbox do form1, mas a variável teste ´fica vazia ou seja ele não puxa o valor do TextBox

O meu form1 é mdi, aí eu faço o seguinte clico no botão novo do meu ToolBox, ele chama o form2, então eu digito os valores no textBox, então clico no botão abrir, fiz essa função dentro do botão abrir do toolbar para testar, e ele exibi o msgbox vazio. ele deveria exibir o texto que digitei no textbox.

Na Opção Modifiers da propriedade do TextBox coloquei como Public

O que estou fazendo errado?

Link para o comentário
Compartilhar em outros sites

  • 0

Se você está criando "f" naquele momento ali, então a textbox realmente está vazia (por isso que "teste" fica vazio). O ideal é você ter "f" declarada como um membro visível por todos os métodos da classe (ou seja, declará-lo no corpo da classe) e em um momento criá-lo e em outro acessá-lo (sem criá-lo novamente). Todas aquelas idéias de encapsulamento estão presentes em VB.NET, então recomendo que você dê uma olhada nos conceitos de OO. Certo? wink.gif

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

Cara mei complicado o que você falou mas tentei fazer ontém à noite e hoje desde de 7 horas, mas não cheguei em resultado algum.

Olha como tentei fazer, você escreveu que eu tenho que criar o f visível para todos, ou seja criá-lo no corpo da classe então fiz o seguinte primeiro criei em módulo dessa forma:


Public f As New Nota

E na mnuItem1 deixei assim:
Dim teste
teste = f.txtnatureza.Text
Msgbox(teste,....)
Ele não deu erro mas também continuou vazio Então criei no inicio da classe, assim:
Public Class principal
    Inherits System.Windows.Forms.Form
    Dim f As New Nota
....
criei também dessa forma:
Public Class principal
    Inherits System.Windows.Forms.Form
    Public f As New Nota
....

A opção do mnuItem 1 ficou igual, mas continuou tudo do mesmo jeito ou seja vazio, tentei outras formas mas todas sem resultado.

Eu sei que você já explicou mas você poderia me dar exemplos. Onde exatamente eu jogo esse código Dim f As New Nota.

Desde já valeu pela ajuda

Link para o comentário
Compartilhar em outros sites

  • 0

Cara... não sei qual o mistério nisso. Fiz um exemplo aqui pra ti: http://www.gs.kitbr.com/stuff/TesteForms.zip

Abra-o, execute-o, clique no botão que abre o 2º form, digite algo na textbox dele (deste 2º form), volte ao 1º form e clique no botão que pega o texto do 2º. Depois, dê uma olhada no código e você verá que é a mesma coisa que você está fazendo (pelo menos parece).

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

Cara realmente está igual o que eu fiz nada diferente a não um detalhe que eu acho que é aí que está o problema. É o seguinte os forms que você fez são forms comum os dois e você abre elas dessa forma

f2.Show()
O meu form 1 é mdi e o meu form 2 é comum eu abro o form2 dentro do mdi dessa forma:
 mdiFilho.Close()
        mdiFilho = New form2
        mdiFilho.MdiParent = principal.ActiveForm
        mdiFilho.Show()
Eu fiz um modelo sem mdi e fucionou mas com o mdi não funciona. Vi outra diferença no form comum o acesso fica assim:
Dim f2 As New Form2()
No mdi fica assim
Dim f2 As New Form2

Ou seja no mdi o final fica sem parenteses

Será que para trabahar com mdi tenho que chamar o formulário de modo diferente?

Pela lógica e pelo que vi no seu o meu código está certo, mas a variável continua vazia.

você sabe o que pode ser?

Link para o comentário
Compartilhar em outros sites

  • 0

Cara realmente está igual o que eu fiz nada diferente a não um detalhe que eu acho que é aí que está o problema. É o seguinte os forms que você fez são forms comum os dois e você abre elas dessa forma

f2.Show()
O meu form 1 é mdi e o meu form 2 é comum eu abro o form2 dentro do mdi dessa forma:
 mdiFilho.Close()
        mdiFilho = New form2
        mdiFilho.MdiParent = principal.ActiveForm
        mdiFilho.Show()
Eu fiz um modelo sem mdi e fucionou mas com o mdi não funciona. Será que para trabahar com mdi tenho que chamar o formulário de modo diferente?
Cara, realmente não há diferença entre forms comuns ou MDI pais e filhos. Mudei o form1 para MDI e adicionei apenas mais uma linha de código (que define a propriedade MdiParent do form2 ao abrí-lo), e funcionou do mesmo jeito. Dê uma olhada: http://www.gs.kitbr.com/stuff/TesteForms2.zip
Vi outra diferença no form comum o acesso fica assim:
Dim f2 As New Form2()
No mdi fica assim
Dim f2 As New Form2
Ou seja no mdi o final fica sem parenteses
Ambas as formas dão no mesmo. Você só deve omitir os () se *não* existir o New. Isso porque quando você utiliza o New você está querendo chamar o método construtor da classe (e métodos sempre são caracterizados pela utilização de ()). O que você pode estar colocando é...
Dim f2 As Form2
... aí sim não tem parênteses. E, em algum momento você terá que fazer...
f2 = New Form2()

... o que dá no mesmo que o código acima.

Veja o exemplo lá e verifique se funciona aí pra ti.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

Cara funcionou o problema estava no modo que abro o foumulário, eu abro assim:

 mdiFilho.Close()
        mdiFilho = New form2
        mdiFilho.MdiParent = principal.ActiveForm
        mdiFilho.Show()

e você abre assim

f2.MdiParent = Me

f2.Show()

Não acredito que tentei tantas coisas e era só isso

Qual a diferença dos modos?

Link para o comentário
Compartilhar em outros sites

  • 0

Não tem diferença. O seu jeito também é viável. Substitui o...

f2.MdiParent = Me
f2.Show()
... por:
f2.Close()
f2 = New Form2()
f2.MdiParent = Me
f2.Show()

Note que este último está igual ao código que você usava (só utilizei o nome "f2" ao invés de "mdiFilho"), e *funciona* do mesmo jeito. Apenas não vejo a necessidade de fechar o form antes mesmo de abri-lo (o Close()) e depois de criar outra instância dele (o New Form2()), uma vez que a instância já existe e é necessário apenas mostrar (o Show()) o form.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...