1
resposta

Abrir Controle de Usuario em uma TabPage

Não quero permitir, inserir o mesmo Controle de Usuario em mais de uma TabPage. Eu tentei fazer sozinho, e consegui, porém quero saber se existe uma propriedade ou outra forma mais fácil.

No frm princiapal, criei uma lista de string global, onde quando adiciono o controle de Usuario na tabPage, eu adiciono o nome do form na lista. Criei uma variavel do tipo bool, que começa com false. No método que adiciona o Controle de Usuario na TabPage, eu usei o foreach para percorrer a lista, e se achar o nome do formulário, não faz nada, e se achar, a variavel bool recebe true. E abaixo, só adiciona a para a TabPage quando a variavel for false. No método que fecha a TabPage, remove a string da lista.

1 resposta

Oii Ludgero, como você está?

Desculpe por demorar tanto a te responder.

Uma alternativa para simplificar o seu código é utilizar um HashSet em vez de uma lista. O HashSet é uma estrutura de dados que não permite a inserção de elementos duplicados. Dessa forma, você pode adicionar o nome do formulário ao HashSet sempre que adicionar o Controle de Usuário em uma TabPage. Antes de adicionar, você pode verificar se o nome já existe no HashSet utilizando o método Contains. Se o nome já existir, significa que o Controle de Usuário já foi adicionado em outra TabPage e você pode interromper a execução do método.

Dessa forma, você não precisa percorrer a lista ou utilizar uma variável booleana para verificar se o nome do formulário já existe. O HashSet faz essa verificação de forma mais eficiente.

Espero ter contribuído! Abraços.