Como calcular a quantidade de formulários abertos em C#
Em aplicações Windows Forms, pode ser necessário acompanhar quantos formulários estão abertos ao mesmo tempo. Isso pode ser útil para gerenciar recursos ou limitar o número de instâncias de um formulário específico. Neste post, vamos explorar como calcular a quantidade de formulários abertos em C#.
Exemplo de código
using System;
using System.Linq;
using System.Windows.Forms;
namespace ContarFormularios
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnAbrirFormSecundario_Click(object sender, EventArgs e)
{
FormSecundario formSecundario = new FormSecundario();
formSecundario.FormClosed += FormSecundario_FormClosed; // Assina o evento de fechamento
formSecundario.Show();
AtualizarQuantidadeFormularios();
}
private void FormSecundario_FormClosed(object sender, FormClosedEventArgs e)
{
AtualizarQuantidadeFormularios(); // Atualiza a quantidade quando o formulário secundário é fechado
}
private void AtualizarQuantidadeFormularios()
{
// Conta o número de formulários abertos
int quantidade = Application.OpenForms.Cast<Form>().Count();
lblQuantidadeFormularios.Text = $"Quantidade de Formulários Abertos: {quantidade}";
}
}
}
Explicação do código
- btnAbrirFormSecundario_Click: Este método é chamado quando o botão para abrir o formulário secundário é clicado. Um novo objeto
FormSecundarioé criado e exibido. - FormSecundario_FormClosed: Este evento é acionado quando o
FormSecundarioé fechado. Ele chama o métodoAtualizarQuantidadeFormulariospara atualizar a contagem. - AtualizarQuantidadeFormularios: Este método usa
Application.OpenFormspara contar o número de formulários abertos. O resultado é exibido em umLabel.
Outro exemplo prático
using System;
using System.Collections.Generic;
using System.Windows.Forms;
namespace ContarFormulariosAbertos
{
public partial class MainForm : Form
{
private List<Form> openForms = new List<Form>(); // Lista para armazenar formulários abertos
public MainForm()
{
InitializeComponent();
}
private void buttonOpenForm_Click(object sender, EventArgs e)
{
OpenNewForm();
}
private void OpenNewForm()
{
// Cria uma nova instância do formulário secundário
Form newForm = new Form();
newForm.Text = "Formulário " + (openForms.Count + 1);
newForm.FormClosed += NewForm_FormClosed; // Associa o evento de fechamento
// Exibe o formulário
newForm.Show();
openForms.Add(newForm); // Adiciona à lista de formulários abertos
UpdateOpenFormsCount(); // Atualiza a contagem
}
private void NewForm_FormClosed(object sender, FormClosedEventArgs e)
{
// Remove o formulário fechado da lista
openForms.Remove(sender as Form);
UpdateOpenFormsCount(); // Atualiza a contagem
}
private void UpdateOpenFormsCount()
{
labelOpenFormsCount.Text = $"Formulários Abertos: {openForms.Count}"; // Atualiza o label
}
}
}
Explicação do código
- openForms: Uma lista que armazena as instâncias dos formulários abertos;
- buttonOpenForm_Click: Este método é chamado quando o botão para abrir um novo formulário é clicado. Ele chama o método
OpenNewForm(); - OpenNewForm: Este método cria uma nova instância de um formulário, define seu título e associa o evento
FormClosedao métodoNewForm_FormClosed, que é chamado quando o formulário é fechado. Em seguida, ele exibe o novo formulário e o adiciona à listaopenForms; - NewForm_FormClosed: Este método é chamado quando um formulário é fechado. Ele remove o formulário da lista
openFormse atualiza a contagem de formulários abertos; - UpdateOpenFormsCount: Este método atualiza o
Labelpara exibir a quantidade atual de formulários abertos.
Para identificar a quantidade de formulários abertos na sua aplicação de forma a tomar determinadas decisões, basta utilizar OpenForms, conforme o código a seguir:
int qtdeFormsAbertos = Application.OpenForms.OfType<MeuFormulario>().Count();
Calcular a quantidade de formulários abertos em uma aplicação C# é uma tarefa simples utilizando a propriedade Application.OpenForms.
Com essa abordagem, você pode gerenciar melhor os recursos da sua aplicação e fornecer uma interface mais interativa para o usuário. Experimente expandir essa funcionalidade para adicionar controles adicionais ou interações com os formulários abertos!
Dúvidas ou sugestões? Deixem nos comentários! Para mais dicas, acesse o nosso canal no YouTube:
https://youtube.com/criandobits
A verdade é que continuar sem esse conhecimento pode estar custando muito mais do que você imagina.
Você pode economizar centenas ou até milhares de reais ao longo do tempo fazendo você mesmo a manutenção dos seus computadores. E, se decidir prestar serviços, esse conhecimento também pode se transformar em uma fonte de renda, que pode variar de R$2.000 a R$5.000 por mês ou mais.
Tudo isso com aulas práticas, objetivas e focadas no que realmente funciona, sem enrolação:
✔ Resolver seus próprios problemas sem depender de ninguém ✔ Ganhar dinheiro com manutenção e suporte técnico ✔ Ou até entrar de vez no mercado de TI
A decisão é sua: continuar gastando dinheiro sempre que o computador apresentar um problema ou aprender uma habilidade que pode fazer você economizar e até gerar uma nova fonte de renda.
👉 CLIQUE AQUI AGORA e veja todos os detalhes antes que essa oportunidade passe:
Sobre o Autor

0 Comentários