Uma exceção é um erro em tempo de execução em um programa, que viola uma condição que não
foi especificada para acontecer durante a operação normal. Um exemplo na prática é quando um programa
tenta fazer a divisão por zero ou tenta escrever em um arquivo somente leitura. Quando isto ocorre, o
sistema pega o erro e lança uma exceção.
Será exibida a cor Azul.
Vá até o Solution Explorer no arquivo program.cs do teu projetto, deverá aparecer
lá uma linha com o seguinte código:
if (MessageBox.Show("Deseja realmente sair ?", "Sair", MessageBoxButtons.YesNo) ==
DialogResult.Yes)
{
Close();
}
Se pressionar o botão Sim o formulário será fechado - Os
dois sinais de igual, é utilizado na estrutura condicional.
Dê um duplo clique dentro do formulário. No evento load (entre o private void() e as
chaves), digite o código abaixo:
cmbUF.Items.Add("AC");
cmbUF.Items.Add("BA");
cmbUF.Items.Add("GO");
Mostra em que posição encontrou a
string
int posicao = txtTexto.Text.IndexOf("eres");
lblResultado.Text = "" + posicao;
Observação: Se você digitar na caixa de texto txtTexto, a
string Elidia Peres, será exibido a posição 8.
Toca som Wave - WindowsForm
System.Media.SoundPlayer som = new System.Media.SoundPlayer();
som.SoundLocation = @"C:\raiz\Hold Tight.wav";
som.Load();
som.Play();
Permitir apenas números em um
TextBox
Selecione o textbox. Vá na janela Properties e no botão Events, selecione o evento KeyPress. Duplo
clique no mesmo. Digite a codificação abaixo:
if (!Char.IsDigit(e.KeyChar) && e.KeyChar != (char)8) // Se a tecla pressionada não for número E
a tecla pressionada não for Backspace E a tecla pressionada não for Delete
{
e.Handled = true; // Bloqueia as demais teclas
}
Permitir além de números a
vírgula
Selecione o textbox. Vá na janela Properties e no botão Events, selecione o evento KeyPress.
Duplo clique no mesmo. Digite a codificação abaixo:
if (!Char.IsDigit(e.KeyChar) && e.KeyChar != (char)8 && e.KeyChar != (char)126 &&
e.KeyChar != (char)44) // Se a tecla pressionada não for número E a tecla pressionada não for Backspace E
a tecla pressionada não for Delete E se a tecla pressionada não for igual ao vírgula
{
e.Handled = true; // Bloqueia as demais teclas
}
Não permitir que um textbox fique
vazio
Duplo clique no botão de confirmação. Digite a codificação abaixo:
if (string.IsNullOrEmpty(txtNome.Text)) // propriedade IsNullOrEmpty não permite que a textbox
receba um valor nulo ou que o mesmo fique vazio.
{
MessageBox.Show("Informe o Nome");
}
Não permitir que um textbox fique com
espaços
Duplo clique no botão de confirmação. Digite a codificação abaixo:
if (string.IsNullOrEmpty(txtNome.Text.Trim()))
{
MessageBox.Show("Informe o Nome");
}
Só permitir a digitação de
determinadas letras em um textbox
Selecione o textbox. Vá na janela Properties e no botão Events, selecione o evento KeyPress.
Duplo clique no mesmo. Digite a codificação abaixo:
if ((e.KeyChar != 'A') && (e.KeyChar != 'D') && e.KeyChar != (char)8)
e.Handled = true;
Só permitir a digitação de letras
maiúsculas em um textbox
Selecione o textbox. Vá na janela Properties e no botão Events, selecione o evento KeyPress.
Duplo clique no mesmo. Digite a codificação abaixo:
txtNome.CharacterCasing = CharacterCasing.Upper; //Se utilizar no lugar de Upper o método
Lower, só permitirá a digiração de minúsculas
Em um textbox de múltiplas linhas, permitir o
enter acionar um botão
txtValor.AcceptsReturn = false;
Formatar como moeda em um textbox
Selecione o textbox. Vá na janela Properties e no botão Events, selecione o evento Leave
(o evento Leave ocorre, quando perde o foco da caixa de textos). Duplo clique no mesmo.
Digite a codificação abaixo:
txttotalGeral.Text = Convert.ToDecimal(txttotalGeral.Text).ToString("R$ ##,##0.00");
Formatar como moeda2 em um textbox
Selecione o textbox. Duplo clique no Evento Leave, e insira o código abaixo
(observe que o exemplo da caixa de texto é txtSalario, portanto insira o nome correto da caixa que
deseja formatar):
txtSalario.Text = string.Format("{0:C}", Convert.ToDouble(txtSalario.Text));
Passar para a próxima linha em um
MessageBox
Environment.NewLine.
Exemplo:
if (MessageBox.Show("Deseja realmente sair?" + Environment.NewLine + "Fim da
Aplicação!", "Sair do Programa", MessageBoxButtons.YesNo, MessageBoxIcon.Question) ==
DialogResult.Yes)
{
this.Dispose();
}
Não executar as linhas abaixo de uma estrutura condicional
if
if (txtsubTotal.Text == "")
{
MessageBox.Show("Informe o Sub-Total!", "Total", MessageBoxButtons.OK);
txtsubTotal.Focus();
return; //Não executa as linhas que estiverem depois da chave que fecha este bloco de if
}
Armazenar a conexão com o banco no
app.config
Para criar o arquivo app.config, clique com o botão direito sobre o projeto no Solution Explorer
e selecione Add / New Item e abra: Application Configuration File.
Entre as tags Configuration, coloque o código abaixo:
<connectionStrings>
<add name="conexao" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=bd;
Integrated Security=True;" providerName="sqlClient"/>
</connectionStrings>
Esta string é para o banco de dados SQLSERVER EXPRESS, e o nome do banco é bd.
Recuperando dentro do projeto em C#:
Adicione as referências:
using System.Configuration;
using System.Data.SqlClient;
Dentro do Form Load:
//Para acessar o ConfigurationManager, clique com o botão direito do mouse no Solution Explorer
no nome do projeto e selecione Add Reference. Selecione System.Configuration
string strConexao = ConfigurationManager.ConnectionStrings["conexao"].ConnectionString;
lblConexao.Text = strConexao;
SqlConnection cn = new SqlConnection(strConexao);
cn.Open();
MessageBox.Show("Conectou");
cn.Close();
Utilizando o recurso dentro do App.Config, porém com a utilização de senha:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings>
<add name="conexao" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=bd;
User id=sa; Password=sa;" providerName="sqlClient"/>
</connectionStrings>
</configuration>
Utilizando o método DBNull, para verificar se uma
coluna da tabela está nula (em branco)
if (!(dr["nome"].Equals(System.DBNull.Value)))
txtNome.Text = dr["nome"].ToString();
Observação: Senão a coluna nome não for nula, o conteúdo da mesma é armazenado no textbox
txtNome. Este exemplo é para a classe DataReader.
Utilizando o método DBNull, para verificar se uma
coluna da tabela está nula (em branco)
if(!linha["email"].Equals(System.DBNull.Value))
txtEmail.Text = linha["nome"].ToString();
Observação: Senão a coluna nome não for nula, o conteúdo da mesma é armazenado no textbox
txtNome. Este exemplo é para a classe DataRow.
Classe conexão com o banco de dados sem usuário e
senha
No exemplo abaixo, o nome do projeto é controleComissao. Observe o namespace que é o nome do projeto.
Para inserir o código abaixo, crie a classe clsComissao e antes do class clsConexao, insira public. Após
a chave de abertura, coloque a codificação abaixo:
namespace controleComissao
{
public class clsConexao
{
private static string conexao = @"Data Source=.\SQLEXPRESS;Initial Catalog=bdComissao; Integrated
Security=True";
public static string stringConexao
{
get
{
return conexao;
}
}
}
}
Classe conexão com o banco de dados com usuário e
senha
No exemplo abaixo, o nome do projeto é controleComissao. Observe o namespace que é o nome do projeto.
Para inserir o código abaixo, crie a classe clsComissao e antes do class clsConexao, insira public. Após
a chave de abertura, coloque a codificação abaixo:
namespace controleComissao
{
public class clsConexao
{
private static string conexao = @"Data Source=.\SQLEXPRESS;Initial Catalog=bdComissao;user
id=sa;password=admin123456";
public static string stringConexao
{
get
{
return conexao;
}
}
}
}
Identar estrutura de chaves
CTRL + k, F -> Formata o que estiver selecionado.
CTRL + k,d -> Formata o documento inteiro.
Excluir máscara do
MaskedTextBox via código
Quando você vai fazer validação com caixas MaskedTextBox, fica bem fácil excluindo a máscara.
Exemplo:
mskdataNascimento.TextMaskFormat = MaskFormat.ExcludePromptAndLiterals;
var valorSemMascara = mskdataNascimento.Text; // Foi criada a variável valorSemMascara, onde a mesma
recebe
o conteúdo do maskedTextBox sem a máscara. É através desta variável que você fará a validação.
Exemplo:
if (valorSemMascara == "") // Se a Data de Nascimento estiver em branco
{
MessageBox.Show("Informe a Data de Nascimento!", "Data de
Nascimento", MessageBoxButtons.OK, MessageBoxIcon.Information);
mskdataNascimento.Focus(); // Coloca o foco na caixa de texto
return; // Não executa as linhas abaixo da chave de fechamento abaixo
}
Incluir máscara do
MaskedTextBox via código
Ao contrário do exemplo acima, antes de salvar na tabela, é importante incluir a máscara.
Exemplo:
mskdataNascimento.TextMaskFormat = MaskFormat.IncludePromptAndLiterals;
Relatório com parâmetro -
Crystal Reports
private void btnImprimir_Click(object sender, EventArgs e)
{
ReportDocument relatorio = new ReportDocument(); // Instancia o relatório
string strnomeRelatorio = "Pedido";
relatorio.Load("C:\\Users\\Edson\\Documents\\Visual Studio 2015\\Projects\\Distribuidora" +
"\\" + strnomeRelatorio + ".rpt"); // Carrega o relatório
// Define instanciando os itens que carregarão o(s) parâmetro(s)
ParameterFieldDefinitions crParameterFieldDefinitions;
ParameterFieldDefinition crParameterFieldDefinition;
ParameterValues crParameterValues = new ParameterValues();
ParameterDiscreteValue crParameterDiscreteValue = new ParameterDiscreteValue();
crParameterDiscreteValue.Value = txtcodigoPedido.Text; // Passa o conteúdo informado na caixa de
textos como parâmetro para o Crystal Reports filtrar
crParameterFieldDefinitions = relatorio.DataDefinition.ParameterFields;
crParameterFieldDefinition = crParameterFieldDefinitions["codigoPedido"]; // Nome do parâmetro
criado no Crystal Reports
crParameterValues = crParameterFieldDefinition.CurrentValues;
crParameterValues.Clear();
crParameterValues.Add(crParameterDiscreteValue);
crParameterFieldDefinition.ApplyCurrentValues(crParameterValues);
rptComissao.ReportSource = relatorio; // Exibe o relatório
rptComissao.Refresh();
}
Reiniciar Aplicativo
Application.Restart();
Validar Email - Inserir o bloco de códigos abaixo no botão
Salvar, ou mesmo no evento Leave da caixa de textos de e-mail.
try // Verifica se o e-mail é válido
{
var endereco = new System.Net.Mail.MailAddress(txtEmail.Text);
}
catch
{
MessageBox.Show("E-mail Inválido!", "E-mail", MessageBoxButtons.OK);
txtEmail.Focus();
return;
}
Verifica se o e-mail já foi cadastrado.
clsVendedor classeVendedor = new clsVendedor();
DataTable resultado = classeVendedor.pesquisa_Email(txtEmail.Text);
if (resultado.Rows.Count >0) // Verifica se o e-mail está cadastrado
{
DataRow linha = resultado.Rows[0];
MessageBox.Show("E-mail já cadastrado!", "Cadastrar Vendedor", MessageBoxButtons.OK);
return;
}
Configurar conexão com banco de dados no arquivo
App.config.
Na classe ou em outro objeto, vamos recuperar o que foi salvo no App.Config. Veja
abaixo:
string connectionString = ConfigurationManager.ConnectionStrings["Conexao"].ConnectionString;
using (SqlConnection conexao = new SqlConnection(connectionString))
Configurar chave no arquivo App.Config
No formulário ou qualquer outro objeto:
// Lê o valor da chave "NomeDaChave" através do add key no app.config
TextBox1.Text = ConfigurationManager.AppSettings["NomeEmpresa"];
Permitir além de números a vírgula - 2.
No Evento KeyPress da Caixa de Textos (TextBox, MaskedTextBox), deixe como abaixo:
if (!char.IsDigit(e.KeyChar) && e.KeyChar != (char)8 && e.KeyChar != (char)126) //se não for número,
senão for backspace, senão for delete
{
if (e.KeyChar != ',') //se for vírgula
e.Handled = true;
else if (txtValor.Text.IndexOf(',') > 0)
e.Handled = true;
}
Limpa os controles de todos forms.
Você pode criar uma classe estática, veja o exemplo abaixo da classe clsGlobal, que
está dentro do namespace controleComissao, que é o nome do projeto.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms; // Insira esta biblioteca, pois ela é obrigatória para utilizar os
controles, comandos do FrameWork
namespace controleComissao
{
public static class clsGlobal
public static string nome;
public static void LimparControles(GroupBox groupBox)
{
foreach (Control ctl in groupBox.Controls)
{
if (ctl is TextBox) ((TextBox)ctl).Text = "";
else if (ctl is MaskedTextBox) ((MaskedTextBox)ctl).Text = "";
else if (ctl is ComboBox) ((ComboBox)ctl).Text = "";
else if (ctl is CheckBox) ((CheckBox)ctl).Checked = false;
}
}
}
}
Onde: - GroupBox foi utilizada a referência (using
System.Windows.Forms;), para permitir dentro da classe, reconhecer os controles, como:
GroupBox, TextBox. Comandos como: if, else if, etc.
Como chamar este método dentro de qualquer form:
clsGlobal.LimparControles(gpbDados);
Onde: - clsGlobal é o nome da classe - Limpar_Controles_Forms é o nome
do método - gpbDados é o nome do groupbox do formulário atual.
Método TryParse - Validando só para permitir
números
double valorCompra = 0;
// Tenta converter o salário.
bool EValorCompra = double.TryParse(txtValorCompra.Text, out valorCompra);
if (!EValorCompra)
{
MessageBox.Show("Por favor... informe o Valor da Compra!");
txtValorCompra.Focus();
return;
}
Onde: - foi declarada a variável EValorCompra, que irá armazenar o
resultado da conversão do método TryParse. Caso consiga converter, será armazenada o
valor = true, sendo feita a conversão da caixa de textos txtValorCompra para
variável valorCompra, senão será armazenado o valor false, indicando que o
valor digitado na caixa de texto, não é válido, ou seja, não é número.
Caminho (pasta) onde está armazenado executável da
aplicação
string caminho = System.AppDomain.CurrentDomain.BaseDirectory.ToString();
picFoto.Image = Image.FromFile(caminho + @"\imagens\1.png");
Onde: - Neste exemplo, demonstro como exigir a imagem do controle PictureBox
picFoto. A variável caminho, armazena a pasta, que normalmente é a subpasta
debug. Dentro dela, eu criei a subpasta imagens
Observação: Para retirar (excluir) a imagem do Picture, insira a codificação:
picFoto.Image = null;
Abrir Caixa de Diálogo, para selecionar arquivos
fldArquivo.InitialDirectory = caminho;
if (fldArquivo.ShowDialog() == DialogResult.OK)
{
picFoto.Image = Image.FromFile(fldArquivo.FileName);
}
Observação: Na primeira linha, onde está caminho, utilize o exemplo
acima, referente ao caminho da aplicação