Inquiridor
Como acessar objetos de um Usercontrol através de um Form

Pergunta
-
Eu criei um projeto que contém um Form e um UserControl. Nesse UserControl há uma ListView, e no Form há uma TextBox e um Botão. Eu gostaria de que ao colocar um texto na TextBox e clicar no Botão, adicionasse um Item na ListView do UserControl. Será que é possível fazer isso?
OBS: Uso Visual Basic 2010 Express
- Editado Samuel_4628 quinta-feira, 26 de janeiro de 2017 21:21 Vou querer excluir esta pergunta porque um tempo depois de ter postado isso eu tinha achado uma solução
- Tipo Alterado Samuel_4628 quinta-feira, 26 de janeiro de 2017 21:41
- Tipo Alterado Samuel_4628 quinta-feira, 26 de janeiro de 2017 21:42
- Tipo Alterado Samuel_4628 sexta-feira, 18 de agosto de 2017 11:28
- Tipo Alterado Samuel_4628 sexta-feira, 18 de agosto de 2017 11:28
Todas as Respostas
-
Olá Samuel_4628
Você pode adicionar este método na sua UserControl,
public void Inserir(string sValor) { ListViewItem listViewItem1 = new ListViewItem(); listViewItem1.Text = sValor; this.listView1.Items.Add(listViewItem1); }
No seu FORM no botão deixa desta forma
private void button_Click(object sender, EventArgs e) { userControl11.Inserir(txtValor.ToString()); }
Se ajudei Vote como Útil, se resolvi seu problema clique em Marcar como Resposta.
Daniel Ribeiro Arrais
Consultor Sênior
Site: www.danielarrais.com.br
Linkedin: http://www.linkedin.com/in/danielarrais
E-mail: arraishapkido@gmail.com
Skype: dani.arrais
-
Queria em VB.NET, mas tá bom.
É só converter para VB.NET
- Editado Samuel_4628 quinta-feira, 26 de janeiro de 2017 17:21
-
Me desculpe Samuel_4628
Mas a alteração é bem simples!
Qualquer coisa é só chamar!
Se ajudei Vote como Útil, se resolvi seu problema clique em Marcar como Resposta.
Daniel Ribeiro Arrais
Consultor Sênior
Site: www.danielarrais.com.br
Linkedin: http://www.linkedin.com/in/danielarrais
E-mail: arraishapkido@gmail.com
Skype: dani.arrais
-
-
Converti para VB.NET e ficou assim:
Public Sub Inserir(sValor As String)
Dim listViewItem1 As New ListViewItem()
listViewItem1.Text = sValor
Me.listView1.Items.Add(listViewItem1)
End Sub
Private Sub button_Click(sender As Object, e As EventArgs)
userControl11.Inserir(txtValor.ToString())
End SubPorém deu erro na seguinte parte: userControl11.Inserir Dizendo o seguinte: Reference to non-shared member requires a object reference.
O que faço?
-
O seu userControl esta com este mesmo nome?
userControl11
Coloca o nome do seu userControl!
Se ajudei Vote como Útil, se resolvi seu problema clique em Marcar como Resposta.
Daniel Ribeiro Arrais
Consultor Sênior
Site: www.danielarrais.com.br
Linkedin: http://www.linkedin.com/in/danielarrais
E-mail: arraishapkido@gmail.com
Skype: dani.arrais
-
-
Então altera para o nome do seu componente!
Se ajudei Vote como Útil, se resolvi seu problema clique em Marcar como Resposta.
Daniel Ribeiro Arrais
Consultor Sênior
Site: www.danielarrais.com.br
Linkedin: http://www.linkedin.com/in/danielarrais
E-mail: arraishapkido@gmail.com
Skype: dani.arrais
-
Eu fiz isso. Mas mesmo assim dá erro
Link da imagem mostrando o erro:
https://social.msdn.microsoft.com/Forums/getfile/994348
- Editado Samuel_4628 quinta-feira, 26 de janeiro de 2017 17:58
-
Verifica se na tela do usercontrol voce esta utilizando como string, valida os nomes, pois isso funciona com certeza!
Se ajudei Vote como Útil, se resolvi seu problema clique em Marcar como Resposta.
Daniel Ribeiro Arrais
Consultor Sênior
Site: www.danielarrais.com.br
Linkedin: http://www.linkedin.com/in/danielarrais
E-mail: arraishapkido@gmail.com
Skype: dani.arrais
-
-
No seu FORM verifica quais os nome referente userControl existe?
Se ajudei Vote como Útil, se resolvi seu problema clique em Marcar como Resposta.
Daniel Ribeiro Arrais
Consultor Sênior
Site: www.danielarrais.com.br
Linkedin: http://www.linkedin.com/in/danielarrais
E-mail: arraishapkido@gmail.com
Skype: dani.arrais
-
-
Para poder te ajudar realmente, precisaria ver o código!
Se você quiser, poderiamos marcar um horario e faria um acesso remoto para poder te ajudar!
Se ajudei Vote como Útil, se resolvi seu problema clique em Marcar como Resposta.
Daniel Ribeiro Arrais
Consultor Sênior
Site: www.danielarrais.com.br
Linkedin: http://www.linkedin.com/in/danielarrais
E-mail: arraishapkido@gmail.com
Skype: dani.arrais
-
Você comentou que o nome do seu UserContorl é UserContorl3, vai la no click do botão e verifica se existe algo
UserContorl3X - Sendo o X qualquer outro numero!
Se ajudei Vote como Útil, se resolvi seu problema clique em Marcar como Resposta.
Daniel Ribeiro Arrais
Consultor Sênior
Site: www.danielarrais.com.br
Linkedin: http://www.linkedin.com/in/danielarrais
E-mail: arraishapkido@gmail.com
Skype: dani.arrais
-
-
Eu gosto de trabalhar com `events`, um exemplo:
Crie no Form1 um evento:
Public Class Form1 Public Event NewName(ByVal name As String) Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click RaiseEvent NewName(TextBox1.Text) End Sub End Class
A partir disso tem um botão que ao clicar vai chamar o evento criado, que agora deve ser implementado na ListView da seguinte forma:
Pronto com isso você pode trabalhar enviando informações de um controle para o outro.Public Class UserControlListView Private Sub UserControlListView_Load(sender As Object, e As EventArgs) Handles MyBase.Load ListViewList.Columns.Add("Nomes") ListViewList.View = View.Details ListViewList.FullRowSelect = True ListViewList.GridLines = True
//implementando o evento nessas duas linhas e no método logo abaixo Dim frm As Form1 = DirectCast(ParentForm, Form1) AddHandler frm.NewName, AddressOf NewName End Sub Private Sub NewName(name As String) ListViewList.Items.Add(name) End Sub End Class
Fulvio C
-
-
-
Olá Samuel_4628
Acabei de fazer o código em VB.NET
Public Class UserControl1 Private Sub UserControl1_Load(sender As Object, e As EventArgs) Handles MyBase.Load End Sub Public Sub Inserir(ByVal valor As String) Dim listViewItem As New ListViewItem() listViewItem.Text = valor Me.ListView1.Items.Add(listViewItem) End Sub End Class
Public Class Form1 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click UserControl11.Inserir(TextBox1.Text) End Sub End Class
Se ajudei Vote como Útil, se resolvi seu problema clique em Marcar como Resposta.
Daniel Ribeiro Arrais
Consultor Sênior
Site: www.danielarrais.com.br
Linkedin: http://www.linkedin.com/in/danielarrais
E-mail: arraishapkido@gmail.com
Skype: dani.arrais
- Marcado como Resposta Robson William SilvaModerator segunda-feira, 30 de janeiro de 2017 11:25