Você está na página 1de 19

Curso de C# - Windows Forms

Macoratti – MVP Microsoft


Curso de C# - Windows Forms
• Controles e Componentes
• Controle - É um objeto que representa um
recurso visivel em um projeto Windows Forms
• -Label, TextBox, Button, ListBox, DataGridView,
Combobox, etc.
• Componentes - É igual a um controle só que
não é visível em tempo de execução.(Alguns
exibem algo em tempo de execução)
• - Timer, ErrorProvider, HelpProvider, etc
Curso de C# - Windows Forms
• Programas interagem com controles:
• Propriedades – atributos que determinam a aparência e
comportamento do controle
• Métodos - É um trecho de código que você pode chamar
para realizar uma tarefa. Ex: TextBox.Clear()
• Eventos - Um evento é uma ação/sinal que informa a um
aplicativo que algo importante ocorreu.
• Quando um usuário clica em um controle em um
formulário, o formulário pode lançar um evento Click e
chamar um procedimento que manipula o evento.
• Eventos também permitem que tarefas separadas se
comuniquem.
• Ex: Click. DoubleClick, KeyPress, Load, Leave ,etc
Curso de C# - Windows Forms
• Programas com interfaces de usuário gráficas são principalmente direcionados a
eventos.
• Eles aguardam até que um usuário faça algo como digitar texto em uma caixa de
texto, clicar em um botão ou alterar uma seleção em uma caixa de listagem.
• Quando isso ocorrer, o controle, que é apenas uma instância de uma classe da
plataforma .NET , envia um evento ao seu aplicativo.
• Você pode optar por manipular um evento escrevendo um método especial em seu
aplicativo que será chamado quando o evento é recebido.
• Você pode usar a Janela Propriedades janela para especificar que eventos deseja
tratar em seu código. selecionar um controle no designer e clicar no botão Eventos,
com o ícone de um raio.
• Quando você adiciona um manipulador de eventos por meio da janela de
Propriedades, o designer escreve automaticamente o corpo do método como vazio.
• Você deve escrever o código para que o método faça algo útil.
• A maioria dos controles gera muitos eventos, mas com freqüência um aplicativo
somente precisará manipular alguns deles, ou até mesmo apenas um.
• Por exemplo, você provavelmente que lidar com Click evento, mas não é necessário
manipular seu SizeChanged evento, a menos que deseje fazer algo quando o
dimensionar do botão é alterado.
Curso de C# - Windows Forms
• TextBox – propriedade - AutoCompleteMode

• Obtém ou define uma opção que controla como o preenchimento automático


funciona para a TextBox.

• Append
• Acrescenta o restante da seqüência de caracteres mais provável candidatos para os
caracteres existentes, realce os caracteres acrescentados.

• Suggest
• Exibe a lista drop-down auxiliar associada com o controle de edição. Esta lista
suspensa é preenchida com um ou mais seqüências de caracteres sugeridos
conclusão.

• SuggestAppend
• Acrescenta ambos Suggest e Append opções.

• None
• Desativa o preenchimento automático. Este é o padrão.
Curso de C# - Windows Forms
• Evento Keypress – TextBox (só aceita numeros)
• private void textBox_KeyPress(object sender,
KeyPressEventArgs e)
• {
int asc = (int) e.KeyChar;
if (!char.IsDigit(e.KeyChar) && asc != 08 && asc != 127)
• {
• e.Handled = true;
• //MessageBox.Show("Este campo apenas aceita numeros!");
• }
• }
Curso de C# - Windows Forms
• Por o foco no controle textBox1 no formulário

• private void Form1_Load(object sender,


EventArgs e)
• {
• this.textBox1.Focus(); //TabIndex = 0 ;
• }
Curso de C# - Windows Forms
• Passar valor entre formulários

• No formulário Form1 :

• public static string DefineValorTexto= "";


• private void button1_Click(object sender, EventArgs e)
• {
• if (textBox1.Text == "macoratti" && textBox2.Text == "numsey")
• {
• Form2 frm2 = new Form2();
• DefineValorTexto = textBox1.Text;
• frm2.ShowDialog();
• }
• else
• {
• MessageBox.Show("Usuario/Senha Inválido(s)");
• }
• }
Curso de C# - Windows Forms
• No formulário Form2 – recebe o valor de
textbox1 do formulário Form1
• private void Form2_Load(object sender,
EventArgs e)
• {
• label2.Text = Form1.SetValueForText;
• }
Curso de C# - Windows Forms
• Eventos Validating e Validated - TextBox

• Ocorre quando o controle esta sendo validado

• Quando você alterar o foco usando o teclado (TAB, SHIFT + TAB, e


assim por diante), chamando os métodos Select ou
SelectNextControl, ou definindo a propriedade ContainerControl ao
formulário atual, o foco eventos ocorrem na seguinte ordem:

• 1 Enter
• 2 GotFocus
• 3 Leave
• 4 Validating
• 5 Validated
• 6 LostFocus
Curso de C# - Windows Forms
• Quando você muda o foco usando o mouse ou chamando o método Focus
os eventos ocorrem nesta ordem:

• 1 Enter
• 2 GotFocus
• 3 LostFocus
• 4 Leave
• 5 Validating
• 6 Validated

• Se a propriedade CausesValidation é definida como fasle os eventos


Validating e Validated são suprimidos

• Se a propriedade Cancel do CancelEventArgs é definida como true no evento


Validating delegado, todos os eventos que ocorreriam normalmente após o
evento Validating são suprimidos.
Curso de C# - Windows Forms
• Exemplo de utilização de validating e erroProvider:

• Não permite valores vazios no textBox2:

• private void textBox1_Validating(object sender, CancelEventArgs e)


• {
• if (textBox1.TextLength == 0)
• {
• errorProvider1.SetError(textBox1, "Informe o nome .");
• e.Cancel = true;
• }
• else
• errorProvider1.SetError(textBox1, "");
• }
Curso de C# - Windows Forms
• No evento Click do Button:
• private void button1_Click(object sender, EventArgs e)
• {
• MessageBox.Show("Valor digitado = " + textBox1.Text);
• }
Curso de C# - Windows Forms
• Exemplo completo com dois textBox 2 Label e 1 Button

• Form1:

• public static string SetValueForText = "";


• private void button1_Click(object sender, EventArgs e)
• {
• if (textBox1.Text == "macoratti" && textBox2.Text == "numsey")
• {

• Form2 frm2 = new Form2();
• SetValueForText = textBox1.Text;
• frm2.ShowDialog();
• }
• else
• {
• MessageBox.Show("Usuario/Senha Inválido(s)");
• }
• }
Curso de C# - Windows Forms
• private void Form1_Load(object sender, EventArgs e)
• {
• this.textBox1.Focus();
• }

• private void textBox1_KeyPress(object sender, KeyPressEventArgs e)


• {
• int asc = (int)e.KeyChar;
• if (!char.IsDigit(e.KeyChar) && asc != 08 && asc != 127)
• {
• e.Handled = true;
• MessageBox.Show("Este campo apenas aceita numeros!");
• textBox1.Text = "";
• textBox1.Focus();
• }
• }
Curso de C# - Windows Forms
• private void textBox2_Validating(object sender,
System.ComponentModel.CancelEventArgs e)
• {
• if (textBox2.Text == "")
• {
• MessageBox.Show("Informe um valor");
• e.Cancel = true;
• }
• }

• private void button2_Click(object sender, EventArgs e)


• {
• Form3 frm3 = new Form3();
• frm3.Show();
• }
Curso de C# - Windows Forms
• Validando o Email
• private void txtEmail_Validating(object sender, System.ComponentModel.CancelEventArgs e)
• {
• string strRegex = "^([a-zA-Z0-9_\\-\\.]+)@((\\[[0-9]{1,3}" + "\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([a-
zA-Z0-9\\-]+\\" + ".)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$";
• Regex re = new Regex(strRegex);
• if ((re.IsMatch(txtEmail.Text)))
• {
• txtEmail.BackColor = Color.Yellow;
• }
• else
• {
• txtEmail.BackColor = Color.WhiteSmoke;
• MessageBox.Show("Email invalido");
• txtEmail.Text = "";
• e.Cancel = true;
• }
• }
Curso de C# - Windows Forms
• ENTER no lugar de TAB
• private void txtNome_KeyPress(object sender,
KeyPressEventArgs e)
• {
• if (e.KeyChar == Convert.ToChar(13))
• {
• e.Handled = true;
• SendKeys.Send("{TAB}");
• }
• }
Curso de C# - Windows Forms
• ENTER no lugar de TAB no formulário
• private void frmPrincipal_KeyPress(object sender,
KeyPressEventArgs e)
• {
• if (e.KeyChar == Convert.ToChar(13))
• {
• e.Handled = true;
• SendKeys.Send("{TAB}");
• }
• }

Você também pode gostar