Você está na página 1de 10

Windows Form

Nesta explicao passo a passo voc ir criar e executar um Windows Form simples.

Para criar um novo formulrio do Windows, inicie o Visual Studio.

1. Criar um aplicativo do Windows chamado HelloWorld;

2. Arraste um controle Button a partir da Caixa de Ferramentas para o formulrio;

3. Clique no boto para selecion-lo. Na janela Properties, defina a Text propriedade para dizer
Hello.

Para escrever cdigo em seu aplicativo

1. Clique duas vezes no formulrio para adicionar um manipulador de eventos para o evento
Click. O editor de cdigos ser aberto com o ponto de insero colocado dentro do manipulador
de eventos. 2. Insira o seguinte cdigo:

C#
MessageBox.Show("Hello, World!");

Para testar o aplicativo

1. Pressione F5 para executar a aplicao.

2. Quando seu aplicativo est sendo executado, clique no boto e verificar que "Hello, World!"
mostrado.

3. Feche o Fomrulrio do Windows para retornar ao Visual Studio.

Fonte: http://msdn.microsoft.com/pt-br/library/vstudio/z9w2f38k(v=vs.100).aspx

Caixas de dilogos

Caixas de dilogos so partes vitais em aplicaes do Windows. Um dilogo tpico comum fornece uma
funcionalidade interna para fora-da-caixa semelhante aos dilogos comuns encontradas no sistema
operacional Windows. Conhecer a estrutura das caixas de dilogos fundamental para o
desenvolvimento de aplicaes Windows, pois o uso correto deste recurso possibilita uma forma de
comunicao com o usurio.
Usaremos a caixa de dilogos MessageBox que normalmente disparada por um evento da aplicao
exibindo uma mensagem com o texto especificado. Uma caixa de mensagem pode ter algumas opes
adicionais, incluindo uma legenda, cone e botes de ajuda.
A classe MessageBox possui um mtodo Show sobrecarregado esttico que usado para exibir uma
mensagem. Aqui esto a maioria das formas de MessageBox:
MessageBox simples

Para personalizar a MessageBox com um ttulo basta declarar uma nova varivel e passar como
parmetro para o mtodo Show.

Compilando e clicando no boto teremos a MessageBox com um ttulo.

MessageBox com botes


Um MessageBox pode ter diferentes tipos de combinao de botes, como Yes, No ou OK,Cancel. A
enumerao MessageBoxButtons representa os botes a serem exibidos em uma MessageBox e tem
os seguintes valores.
OK
OKCancel
AbortRetryIgnore
YesNoCancel
YesNo
RetryCancel
Para exemplificar vou alterar o nosso cdigo para usar a enumerao MessageBoxButtons
O trecho de cdigo cria um MessageBox com um ttulo e botes Sim e No. Este um tpico
MessageBox voc pode chamar quando voc quiser fechar uma aplicao. Se o boto Sim clicado, o
aplicativo ser fechado. O mtodo Show retorna uma enumerao DialogResult.

MessageBox com cone


Um MessageBox pode exibir um cone no dilogo. A enumerao MessageBoxIcons representa um
cone a ser exibido em um MessageBox e tem seguintes valores.
Nenhum
Mo
Pergunta
Exclamao
Asterisk
Parar erro
Aviso
Informao
O trecho de cdigo a seguir cria um MessageBox com um ttulo, botes, e um cone.
Salve, compile e execute e o resultado ser.

MessageBox com boto padro (Default)

Ns tambm podemos definir o boto padro em um MessageBox. Por padro, o primeiro boto o
boto padro. A enumerao MessageBoxDefaultButton utilizado para este fim e que tem as seguintes
trs valores.
Button1
Button2
Button3
O trecho de cdigo a seguir cria um MessageBox com um ttulo, botes, e um cone e define segundo
boto como um boto padro (Default).
Executando o cdigo o segundo boto iniciar selecionado como padro.

MessageBox com opes de mensagens


A enumerao MessageBoxOptions representa vrias opes e tem os seguintes valores.
ServiceNotification
DefaultDesktopOnly
RightAlign
RtlReading
O trecho de cdigo a seguir cria um MessageBox com vrias opes.

Note que agora estamos manipulando o alinhamento da caixa de dilogo.


Exerccio:
Programa clculo de mdia.

01 Crie um novo projeto:

02 Construa o formulrio igual ao de baixo:


03 Aperte F7 para ir para o source code, ou abra no Solution Explorer o arquivo Form1.cs e
insira os cdigos:
namespace ExemploMediaAlunos
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

public void Calcular()


{ try
{
//Declaro as variveis, as converto para decimal e as jogo nos labels decimal
nota1, nota2, nota3, nota4, maiornota, menornota, media;

nota1 = Convert.ToDecimal(txtNota1.Text); nota2


= Convert.ToDecimal(txtNota2.Text); nota3 =
Convert.ToDecimal(txtNota3.Text); nota4 =
Convert.ToDecimal(txtNota4.Text);

//Teste condicional para descobrir qual a maior nota if


(nota1 > nota2 && nota1 > nota3 && nota1 > nota4)
{
maiornota = nota1;
} else if (nota2 > nota1 && nota2 > nota3 && nota2 > nota4)
{
maiornota = nota2;
} else if (nota3 > nota1 && nota3 > nota2 && nota3 > nota4)
{
maiornota = nota3;
}
else { maiornota = nota4; }
//Teste condicional para descobrir qual a menor nota if
(nota1 < nota2 && nota1 < nota3 && nota1 < nota4)
{ menornota =
nota1;
} else if (nota2 < nota1 && nota2 < nota3 && nota2 < nota4)
{ menornota = nota2;
} else if (nota3 < nota1 && nota3 < nota2 && nota3 < nota4)
{ menornota = nota3;
} else
{ menornota = nota4;
}

//Fao a converso dos valores das labels para string


lblMaiorNota.Text = maiornota.ToString(); lblMenorNota.Text
= menornota.ToString();

//Calculo a mdia das notas e as armazeno na label


media = (nota1 + nota2 + nota3 + nota4) / 4;
lblMedia.Text = media.ToString();
}
catch (FormatException)
{
//Caso ocorra algum erro, apresento uma mensagem ao usurio
MessageBox.Show("Digite nmeros de 0 a 10, com ou sem vrgulas", "Mensagem do Sistema");
}
}

private bool IsTextValidated(string strTextEntry)


{
//Mtodo para no deixar o label vazio, seno d erro de InvalidCast
Regex objNotWholePattern = new Regex("[^0-9]"); return
!objNotWholePattern.IsMatch(strTextEntry);
}

public void Limpar()


{
//Limpo as variveis
txtNota1.Text = "";
txtNota2.Text = "";
txtNota3.Text = ""; txtNota4.Text
= "";
lblMaiorNota.Text = "";
lblMenorNota.Text = "";
lblMedia.Text = "";
lblResultado.Text = "";
}

public void Sair()


{
//Crio o mtodo para o boto Sair
DialogResult result;

result = MessageBox.Show("Tem certeza que deseja sair?", "Mensagem do Sistema",


MessageBoxButtons.YesNo, MessageBoxIcon.Question);

if (result == System.Windows.Forms.DialogResult.Yes)
{
this.Close();
}
}

private void txtNota1_KeyPress(object sender, KeyPressEventArgs e) {


//Teste condicional para aceitar nmeros no textbox if
(!(char.IsDigit(e.KeyChar)))
{
e.Handled = true;
}

//Teste condicional para aceitar a tecla Backspace e vrgula if


(e.KeyChar == 8 || e.KeyChar == 44)
{
e.Handled = false;
}
}

private void txtNota2_KeyPress(object sender, KeyPressEventArgs e)


{
if (!(char.IsDigit(e.KeyChar)))
{
e.Handled = true;
}

if (e.KeyChar == 8 || e.KeyChar == 44)


{
e.Handled = false;
}
}

private void txtNota3_KeyPress(object sender, KeyPressEventArgs e)


{
if (!(char.IsDigit(e.KeyChar)))
{
e.Handled = true;
}

if (e.KeyChar == 8 || e.KeyChar == 44)


{
e.Handled = false;
}
}

private void txtNota4_KeyPress(object sender, KeyPressEventArgs e)


{ if
(!(char.IsDigit(e.KeyChar)))
{
e.Handled = true;
}

if (e.KeyChar == 8 || e.KeyChar == 44)


{
e.Handled = false;
}
}

private void btnCalcular_Click(object sender, EventArgs e)


{
Calcular();
}

private void btnLimpar_Click(object sender, EventArgs e)


{
Limpar();
}

private void btnSair_Click(object sender, EventArgs e)


{
Sair();
}
}
}