/ / O Winform aparece em todos os monitores existentes ao mesmo tempo (é uma janela de alerta) [duplicado] - c #, winforms, multiple-monitors, setbounds

O Winform deve aparecer em todos os monitores existentes ao mesmo tempo (é uma janela de alerta) [duplicado] - c #, winforms, multiple-monitors, setbounds

Eu tenho um pequeno aplicativo que funciona como umsistema de alerta, estou usando um formulário como o alerta que aparece na tela, como eles são mais versáteis e caixas de mensagem. Devido à natureza do alerta, eu preciso que ele apareça no centro de todos os monitores atualmente conectados. Eu tenho que aparecer no monitor principal apenas a partir de agora.

Eu olhei estes dois posts aqui:

Mostrando um formulário do Windows em um monitor secundário?

Como posso garantir que um formulário seja exibido no monitor "adicional" em um cenário de monitor duplo?

Mas eu realmente não consigo entender, eu tenhoolhei para a propriedade Screens.AllScreens, mas ainda não me sinto melhor em entender como informar o formulário em que monitor deve aparecer, e ainda mais longe de tê-lo exibido em vários, já que estou supondo que eu precisaria foreach através de AllScreens array.

Eu também preciso fechar todos os formulários de um relógio de botão em um deles, mas agora eu só quero tê-los em todos os monitores.

Desculpe por fazer uma pergunta que eu sinto que a maioria das pessoas considera já ter respondido.

Respostas:

5 para resposta № 1

Este trabalhou perfeitamente para mim ..

Primeiro crie um formulário de alerta com um rótulo dentro. defina a propriedade label1 -> Modifier = public

insira a descrição da imagem aqui

void showMsgOnAllScreens(string msg)
{
for (int i = 0; i < Screen.AllScreens.Length; i++)
{
AlertForm alert = new AlertForm();
alert.label1.Text = msg;
alert.StartPosition = FormStartPosition.Manual;
alert.Location = new Point(
Screen.AllScreens[i].Bounds.Left + (Screen.AllScreens[i].Bounds.Width / 2 - alert.Width / 2),
Screen.AllScreens[i].Bounds.Height / 2 - alert.Height / 2);
alert.Show();
}
}

.

.

.

Agora simplesmente chame o método para mostrar msgs em todas as telas.

void button1_click (object sender, EventArgs e)
{
showMsgOnAllScreens("Warning.. Something"s burning..!!");
}