Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

alexandremanowar

toolbar

Recommended Posts

Olá pessoal

 

Estou fazendo uns projetos de teste e estou com o seguinte problema.

 

Estou testando o modo de copiar valores do textbox de um formulário para outro da seguinte forma:

 

Criei um formulário mdi o nome é principal e criei um formulário comum com o nome Nota. No mdi eu fiz um menu com três opções que são

 

novo,exibir,sair

 

Então na opção novo eu abro o fomulário nota para que fique dentro do mdi dessa forma:

1. 2.  mdiFilho.Close()3.         mdiFilho = New Nota4.         mdiFilho.MdiParent = principal.ActiveForm5.         mdiFilho.Show()
Até aí tudo bem

Na opção exibir é o seguinte, quando eu clico no opção novo ele me abre o formulário Nota nesse formulário tem um TextBox, eu quero digitar algo no textbox e quando eu clicar na opção exibir no menu ele tem que mostrar o que está no TextBox em um Msgbox, fiz de várias formas, mas o MsgBox fica vazio.

Olha como eu fiz:

1. 2.  Private Sub MenuItem2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem2.Click3. 4. Dim f As New Nota5. Dim teste6.         teste = f.txtnatureza.Text7. 8.         MsgBox(teste, MsgBoxStyle.Information, "ok")
Dessa forma nã odeu pau mas Msgbox ficou vazio

A outra forma declarei dentro do múdulo dessa forma:

 

Public f As New Nota
E dentro do mnuItem2 dessa forma:

1. 2. 3. Dim teste4.         teste = f.txtnatureza.Text5. 6.         MsgBox(teste, MsgBoxStyle.Information, "ok")7.
Não deu pau mas o resultado é o mesmo

Fim declarando no inicio da classe, assim:

1.  2. Public Class principal 3.     Inherits System.Windows.Forms.Form 4.     Public f As New Nota 5. . 6. . 7. . 8. . 9. Private Sub MenuItem2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem2.Click10. 11. 12. Dim teste13.         teste = f.txtnatureza.Text14. 15.         MsgBox(teste, MsgBoxStyle.Information, "ok")
Mas também não funcionou o msgbox continua vazio.

Resumindo o que estou tentando fazer é clicar no botão novo ele abrer o form Nota depois digitar algo no textbox do nota e clicar na opção exibir do menu no mdi e exibir em um msgbox o valor do textbox do form nota

Estou trabalhando com winform

Alguém pode me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

consegui resolver o problema do toolbar usando o comando:

e.Button.Tag.ToString

Mas ainda ficou faltando o problema do Texbox. Editei o post acima especificando as minhas dúvidas com textbox já tentei de tudo que conheço e não consigo arrumar. Se Alguém souber como resolver, por favor de uma lida no post acima e me ajude estou precisando

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

você concorda q se você criar uma nova instancia de um Form e não digitar nada no TextBox ele não virá com nada mesmo??caso você ja tenha aberto, você terá q manipular aquela instancia q você já tinha feito... ok?Att,Carlos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara sei que já estou incomodando, mas ainda não estou entendo como eu vou fazer para controlar essar instancia e pagar o valor do textBox em tempo real, já li já procurei já quebrei a cabeça véi e não consegui.Eu sei que da forma que eu fiz da primeira vez ele não vai pegar porque o form foi carregado com o textbox vazio. Precisa saber como fazer para pegar o valor que acabei de digitar no textbox.Se você poder me explicar e me dar exemplos, porque realmente já não tenho mais idéias de como fazer. Resolvi quase todo o problema que eu tinha mas esse eu travei.você pode me ajudar?você disse que:

você concorda q se você criar uma nova instancia de um Form e não digitar nada no TextBox ele não virá com nada mesmo??caso você ja tenha aberto, você terá q manipular aquela instancia q você já tinha feito... ok?

como manipular a instancia que eu já abri aberto?

Compartilhar este post


Link para o post
Compartilhar em outros sites

então cara, c num tá incomodando não... hahaha.. relax...seguinte, eu tive um problema desses qdo fui desenvolver um projeto pra facul em WinForms... eu fiz o seguinte, como eu preciso manipular um objeto de um outro Form, eu passei o objeto dele como parametro ou seja fiz +ou- assimprivate void FazerAlgumaCoisa(System.Windows.Forms.Form f){ //código aqui...}e para chamar eu fazia assimFazerAlgumaCoisa(this);não sei se expliquei direito...qualquer coisa grita ae!!Att,Carlos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara valeu pela força mais uma vez, esse código que você usou deve ser c#, mas estou tentando converter ele para vb.net e já fiz o seguinte mas não está funcionado. Pelo que eu entendi tenho que trabalhar na entrada do progama.

Olha como eu já fiz:

Private Sub MenuItem3_Click(ByVal sender As System.Windows.Forms.Form, ByVal e As System.EventArgs) Handles MenuItem3.Click        Dim teste        teste = f.txtnatureza.Text        MsgBox(teste, MsgBoxStyle.Information, "ok")    End Sub
A linha que alterei foi essa:

 

Private Sub MenuItem3_Click(ByVal sender As System.Windows.Forms.Form, ByVal e As System.EventArgs) Handles MenuItem3.Click

 

Antes ela era assim:

 

Private Sub MenuItem3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem3.Click

 

Pelo que eu entendi eu tenho que alterar o objeto do código.

Porém dessa forma não funcionou. Então fiz assim:

Private Sub MenuItem3_Click(ByVal sender As [b]System.Object[/b], ByVal e As System.Windows.Forms.form) Handles MenuItem3.Click    Dim teste        teste = f.txtnatureza.Text        MsgBox(teste, MsgBoxStyle.Information, "ok")    End Sub
Alterei aqui:

Private Sub MenuItem3_Click(ByVal sender As System.Object, ByVal e As System.Windows.Forms.form) Handles MenuItem3.Click

 

Antes era assim:

Private Sub MenuItem3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem3.Click

No vvb.net não tem essa opção (this).

Mas também não funcionou. Onde está meu erro?

Compartilhar este post


Link para o post
Compartilhar em outros sites

deixa eu entender!!!1º - você tem um Form1 aberto em MDI, correto?2º - você quer abrir outro Form2 e passar um valor do TextBox desse Form2 para o outro Form1?Att,Carlos

Compartilhar este post


Link para o post
Compartilhar em outros sites

É isso mesmo cara, e fucniona assim carrego o form1 que é o mdi, clico no botão novo ele abre o form2 digito algo no Textbox do form2 e clico no menu arquivo opção abrir que é o mnu que eu fiz quando eu clico na opção abrir ele tem que capturar o valor do textbox do form2 e exibir no msgbox.

 

Fiz mais uns teste aqui mas nã odeu certo olha como eu fiz:

Private Sub MenuItem3_Click(ByVal f As System.Windows.Forms.Form) Handles MenuItem3.Click        Dim teste        teste = f.txtnatureza.Text        MsgBox(teste, MsgBoxStyle.Information, "ok")    End Sub
deu erro nessa linha "teste = f.txtnatureza.Text", alterei todo o Private sub

E ta dando erro aqui Private Sub MenuItem3_Click(ByVal f As System.Windows.Forms.Form) Handles MenuItem3.Click

Mas ainda não funciona. Cara não imaginei que passar valor de um textbox para outro form era tão dificil.

O que você acha que pode estra errado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara, está em C#, basta converter

 

no seu Form1 você faz assim pra abrir o outro

 

Form2 f = new Form2();f.ShowDialog(this);

e no evento q você quer do Form2 você faz assim

for(int i = 0; i < this.Owner.Controls.Count;i++) 	 {    if(this.Owner.Controls[i].Name == "textBox1")   	 this.Owner.Controls[i].Text = "Testando..."; 	 }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara está complicado d+. olha peguei o seu código e converti para vb.net coloquei no meu programa mas a primeira parte que é essa :

Dim f As form2 = New form2        f.ShowDialog(Me)
ele faz certo ou seja ele abre o formulário form2

 

Mas a segunda parte que ficou assim:

Dim i As Integer = 0        Do While (i < Me.Owner.Controls.Count)            If (Me.Owner.Controls(i).Name = f.txtnatureza.Text) Then                Me.Owner.Controls(i).Text = "Testando..."            End If            i = (i + 1)        Loop
Está dando erro nessa linha:

Do While (i < Me.Owner.Controls.Count)

 

Eu tmabém nã oentendi como esse código acima pega o valor da text box e exibe em msgBox fiz a alterações mas não entendi o código

 

Acredito que ficaria algo assim

Carrego o form1 como você colocou coloco esse comando para carregar o form2

Dim f As form2 = New form2

depois dentro do mnuItam2 do form1 eu tenho que jogar um código que pegue o valor atual do textbox e não que foi preconfigurado. O problema é como fazer isso?

Cara tá dificil isso

 

 

 

Onde estou errando

Compartilhar este post


Link para o post
Compartilhar em outros sites

faz assim

 

Dim f As New form2f.ShowDialog(Me)

For i as integer = 0 To Me.Owner.Controls.Count      If (Me.Owner.Controls(i).Name = "nomeDoCampoNoOutroForm") Then               Me.Owner.Controls(i).Text = "Testando..."      End IfLoop

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara vê se eu estou entendendo.

 

Peguei esse código:

Dim f As New form2        f.ShowDialog(Me)
E joguei no mnuItem que é que eu vou usar para abrir o formulário. Fiz isso mas ele abriu fora do mdi que é form1. Então fiz assim:

Dim f As New form2mdiFilho.Close()        mdiFilho = New form2        mdiFilho.MdiParent = form1.ActiveForm        mdiFilho.Show()
então beleza ele abriu dentro do mdi, ou seja o form1.

O segundo código fix assim:

For i As Integer = 0 To Me.Owner.Controls.Count            If (Me.Owner.Controls(i).Name = "txtnatureza") Then                Me.Owner.Controls(i).Text = "Testando..."            End If        Next
Deu pau nem carregou

 

fiz assim:

Dim f As New form2 For i As Integer = 0 To Me.Owner.Controls.Count            If (Me.Owner.Controls(i).Name = "txtnatureza") Then                Me.Owner.Controls(i).Text = "Testando..."            End If        Next
Também coloquei assim:

Dim f As New form2 For i As Integer = 0 To Me.Owner.Controls.Count            If (Me.Owner.Controls(i).Name = txtnatureza) Then                Me.Owner.Controls(i).Text = "Testando..."            End If        Next
Em todos os exemplos ele está dando erro nessa linha

For i As Integer = 0 To Me.Owner.Controls.Count

 

Deu pau outra vez nem carregou. Porém ainda não estou entendedo esse código, como esse código pode colocar em uma variavel no mnuItem3 do form1 o valor da textbox do form2?

Véi esse negócio no vb6 era bem mais simples.

Onde será que está o erro cara?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Firmeza cara eu vou fazer aqui também se eu chegar em um resultado poto aquiCara mas desde já valeu pela forçaSe você chegar em um resultado coloca aíValeu mesmoEstou fazendo um e assim que acabar vou postar para nós compararmos os códigos que você fez com o que eu estou fazendo, para chegar em uma compactação melhor

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara é quase isso a diferença é que o botão que pega o valor está no form1, sem esquecer que o form1 é mdi. Olha a tela nesse endereço

 

tela1

tela2

tela3

tela4

 

É essa a idéia cara igual o que você fez mas a diferença é que o botão está no form1 e não no form2, e o valor que vai ficar no msgbox é o que eu vou digitar no textbox

Lembrando que isso é só um teste depois de pronto farei outras coisas o msgbox é apenas para testar se a variável está entrando.

Será funciona assim

É um exercício isso se você quiser depois de pronto eu deixo uma cópia para download.

.

Compartilhar este post


Link para o post
Compartilhar em outros sites

puts cara, ai você me complicou!!! hahahaha...vou ver o q eu consigo aqui... como eu só trabalho com Web, fico boiando nessas coisas!!hahaha mas vou tentar alguma coisa e te falo, ok?Att,Carlos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Firmeza cara eu também vou continuar tentando.Fico aquardando sua respostaSe eu conseguir eu mando também.Meu maior problema é que sou estagiário os caras joga na minha mão e querem que eu me dane, mas eu to estudando cara to me esforçando.Ontém eu quase fiquei louco de tanto tentar fazer issoJá to até pensando em partir o cabelo de lado hahahahahahaValeu pela força cara.

Compartilhar este post


Link para o post
Compartilhar em outros sites

rockloco véi resolvi o problema com a ajuda do Graymalkin, ele mostrou um exemplo igual o que eu queria e estava igual os código que eu fiz no inicio única diferença estava no modo que ele abriu o form2 ele abriu assim:

f.MdiParent = Me        f.Show()

E eu abri assim:

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

Fiz isso e funcionou aí o código ficou assim:

 

 

 

Dim f As New form2 Dim teste        teste = f.txtnatureza.Text        MessageBox.Show(teste)[CODE]Não acredito que me matei em tantas coisa e era só o modo de iniciar o formuláriorsrsrsrsrsValeu pela força cara

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.