Usuário com melhor resposta
Limpar ComboBoxs dentro de um TabControl, ambos em guias diferentes!

Pergunta
-
Olá Pessoal!
Estou tentando limpar os ComboBoxs dentro de um TabControl. Em ambas as guias tabPage1 e tabPage2, utilizando o evento Load do form, porém, só consigo limpar os ComboBoxs da guia tabPage1.
private void Form9_Load(object sender, EventArgs e)
{
cmbSelectEmpresa.Text = ""; // tabPage1
cmbMeioArquivamentoLote.Text = ""; // tabPage1
cmbSelectOrgaoEmissor.Text = ""; // tabPage2
cmbSelectOrgaoFiscalizador.Text = ""; // tabPage2
cmbSelectSerieDocumental.Text = ""; // tabPage2
cmbSelectNomeRespDpto.Text = ""; // tabPage2
}
Criei um botão "Limpar" com todos os ComboBoxs e ele consegue limpar todos os combos das guias, porém, o evento Load do Form não consegue limpar os da tabPage2.
private void btnLimpar_Click(object sender, EventArgs e)
{
cmbSelectEmpresa.Text = ""; // tabPage1
cmbMeioArquivamentoLote.Text = ""; // tabPage1
cmbSelectOrgaoEmissor.Text = ""; // tabPage2
cmbSelectOrgaoFiscalizador.Text = ""; // tabPage2
cmbSelectSerieDocumental.Text = ""; // tabPage2
cmbSelectNomeRespDpto.Text = ""; // tabPage2
}
Fiz uma aplicação de testes e consegui limpar todos os TextBoxs de ambas as tabPages, só não consigo na minha aplicação real!.
Obs.: Estou usando DataSource nos ComboBoxs utilizando métodos.
Alguém poderia me ajudar com esta dificuldade?
Obrigado!
[]’s
Respostas
-
Fiz um exemplo recursivo para limpar os combobox, se quiser que limpe texbox também é só colocar o elseif com o tipo e limpar.
private void button2_Click(object sender, EventArgs e)
{
LimpaControle(tabControl1);
}
private void LimpaControle(Control ctrl)
{
foreach (Control item in ctrl.Controls)
{
if (item.HasChildren)
{
LimpaControle(item);
}
if (item.GetType() == typeof(ComboBox))
{
ComboBox cbo;
cbo = (ComboBox)item;
cbo.SelectedIndex = -1;
}
}
}
Bruno Ferreira de Souza
Analista Desenvolvedor .NET
MCP - Windows Form- Marcado como Resposta Sérgio Pitta segunda-feira, 25 de outubro de 2010 21:58
-
Olá Bruno!
Funcionou corretamente!
Vlw, obrigado!
Abs,
Sérgio Pitta
- Marcado como Resposta Sérgio Pitta terça-feira, 26 de outubro de 2010 11:03
Todas as Respostas
-
Fiz um exemplo recursivo para limpar os combobox, se quiser que limpe texbox também é só colocar o elseif com o tipo e limpar.
private void button2_Click(object sender, EventArgs e)
{
LimpaControle(tabControl1);
}
private void LimpaControle(Control ctrl)
{
foreach (Control item in ctrl.Controls)
{
if (item.HasChildren)
{
LimpaControle(item);
}
if (item.GetType() == typeof(ComboBox))
{
ComboBox cbo;
cbo = (ComboBox)item;
cbo.SelectedIndex = -1;
}
}
}
Bruno Ferreira de Souza
Analista Desenvolvedor .NET
MCP - Windows Form- Marcado como Resposta Sérgio Pitta segunda-feira, 25 de outubro de 2010 21:58
-
Olá Bruno!
Funcionou corretamente!
Vlw, obrigado!
Abs,
Sérgio Pitta
- Marcado como Resposta Sérgio Pitta terça-feira, 26 de outubro de 2010 11:03
-
-
Acrescente um elseif para o TextBox:
private void LimpaControle(Control ctrl)
{
foreach (Control item in ctrl.Controls)
{
if (item.HasChildren)
{
LimpaControle(item);
}
if (item.GetType() == typeof(ComboBox))
{
ComboBox cbo;
cbo = (ComboBox)item;
cbo.SelectedIndex = -1;
}
else if (item.GetType() == typeof(TextBox))
{
TextBox txt;
txt = (TextBox)item;
txt.Text = string.Empty;
}
}
}
Bruno Ferreira de Souza
Analista Desenvolvedor .NET
MCP - Windows Form
www.maestrodotnet.com.br -