Inserindo TabPage ao TabControl
- Pessoal,
estou tentando inserir um TabPage a um TabControl e o VS 2008 me mostra o seguinte erro: "Value does not fall within the expected exception."
Meu codigo:
_tabInspecao.TabPages.Add(_tabExportacao);
O que estou fazendo de errado?
mesmo eu removendo o tabpage antes de tentar inserir-lo no TabControl, ele me retorna o mesmo erro.
Pelo que eu li no manual, é que eu estou tentando passar um objeto que não é do tipo que o método esta esperando.
Porém o método Add ou Insert do tabcontrol me solicita um TabPage...
tentei até fazer um cast mas nada:
_tabInspecao.TabPages.Add((TabPage)_tabExportacao);
Alguém pode me dar uma luz?
Respostas
- Deu certo pois identifiquei o problema
eu estava criando no SelectedIndexChanged de um combobox...e ele gerava erro por causa disso.
Porém tenho outras 2 perguntas:
Como faço para oganizar uma aba? por exemplo, gostaria que a aba que eu acabei de adicionar ao Tabcontrol seja a 3a aba.
E também, como eu faço para verificar se uma TabPage já esta contida dentro de um TabControl?- Marcado como RespostaHarley AraujoMSFT, Moderadorterça-feira, 3 de novembro de 2009 17:16
- Vaza,
Respondendo a sua pergunta:
1 - Como faço para oganizar uma aba?
TabPage controls represent the tabbed pages in a TabControl control. The order of tab pages in the TabControl.TabPages collection reflects the order of tabs in the TabControl control. To change the order of tabs in the control, you must change their positions in the collection by removing them and inserting them at new indexes. (http://msdn.microsoft.com/en-us/library/system.windows.forms.tabpage.aspx )
2 - Como eu faço para verificar se uma TabPage já esta contida dentro de um TabControl?
Utilize o método Contains ou ContainsKey. Acredito que o método ContainsKey é a melhor opção no seu caso.
TabControl.TabPageCollection.Contains Method
http://msdn.microsoft.com/en-us/library/system.windows.forms.tabcontrol.tabpagecollection.contains.aspx
TabControl.TabPageCollection.ContainsKey Method
http://msdn.microsoft.com/en-us/library/system.windows.forms.tabcontrol.tabpagecollection.containskey.aspx
Att.
Ari C. Raimundo- Sugerido como RespostaMurilo Amaru Gomes terça-feira, 3 de novembro de 2009 15:57
- Marcado como RespostaHarley AraujoMSFT, Moderadorterça-feira, 3 de novembro de 2009 17:15
- 1) Use o Insert nele você pode dizer a TabPage e o índice.
tabControl.TabPages.Insert(2, "Nome", "Nome"); // o segundo parametro será a chave pra você pesquisar depois se ja exsite
2) Faça a verificação usando o IndexOfKey:
if(tabControl.TabPages.IndexOfKey("Nome") == -1)
// não existe- Sugerido como RespostaMurilo Amaru Gomes terça-feira, 3 de novembro de 2009 15:57
- Marcado como RespostaHarley AraujoMSFT, Moderadorterça-feira, 3 de novembro de 2009 17:15
Todas as Respostas
- Vaza,
Tem certeza que o problema é nessa linha mesmo? Poderia dar mais detalhes do código que está utilizando?
Na verdade a exception gerada é "Value does not fall within expected range", correto?
Att.
Ari C. Raimundo - Olá Vaza,
No exemplo abaixo, não houve problema.
private void button1_Click(object sender, EventArgs e) { TabPage tabPage2 = new TabPage("Nova"); tabControl1.TabPages.Add(tabPage2); }
Saudações
Márcio Lima - Deu certo pois identifiquei o problema
eu estava criando no SelectedIndexChanged de um combobox...e ele gerava erro por causa disso.
Porém tenho outras 2 perguntas:
Como faço para oganizar uma aba? por exemplo, gostaria que a aba que eu acabei de adicionar ao Tabcontrol seja a 3a aba.
E também, como eu faço para verificar se uma TabPage já esta contida dentro de um TabControl?- Marcado como RespostaHarley AraujoMSFT, Moderadorterça-feira, 3 de novembro de 2009 17:16
- Vaza,
Respondendo a sua pergunta:
1 - Como faço para oganizar uma aba?
TabPage controls represent the tabbed pages in a TabControl control. The order of tab pages in the TabControl.TabPages collection reflects the order of tabs in the TabControl control. To change the order of tabs in the control, you must change their positions in the collection by removing them and inserting them at new indexes. (http://msdn.microsoft.com/en-us/library/system.windows.forms.tabpage.aspx )
2 - Como eu faço para verificar se uma TabPage já esta contida dentro de um TabControl?
Utilize o método Contains ou ContainsKey. Acredito que o método ContainsKey é a melhor opção no seu caso.
TabControl.TabPageCollection.Contains Method
http://msdn.microsoft.com/en-us/library/system.windows.forms.tabcontrol.tabpagecollection.contains.aspx
TabControl.TabPageCollection.ContainsKey Method
http://msdn.microsoft.com/en-us/library/system.windows.forms.tabcontrol.tabpagecollection.containskey.aspx
Att.
Ari C. Raimundo- Sugerido como RespostaMurilo Amaru Gomes terça-feira, 3 de novembro de 2009 15:57
- Marcado como RespostaHarley AraujoMSFT, Moderadorterça-feira, 3 de novembro de 2009 17:15
- 1) Use o Insert nele você pode dizer a TabPage e o índice.
tabControl.TabPages.Insert(2, "Nome", "Nome"); // o segundo parametro será a chave pra você pesquisar depois se ja exsite
2) Faça a verificação usando o IndexOfKey:
if(tabControl.TabPages.IndexOfKey("Nome") == -1)
// não existe- Sugerido como RespostaMurilo Amaru Gomes terça-feira, 3 de novembro de 2009 15:57
- Marcado como RespostaHarley AraujoMSFT, Moderadorterça-feira, 3 de novembro de 2009 17:15
- Boa tarde [VAZA]
Por favor evite postar mais de uma duvida por Thread, isso pode fazer com que a thread fique aberta por um longo periodo sem necessidade !
“Caso esta resposta tenha ajudado a solucionar sua dúvida, favor clicar em “Marcar como Resposta” para beneficiar outros membros da comunidade que estejam lendo este thread”.
Atenciosamente,
Harley Araujo


