![]() |
|
||||
![]() Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais |
Você está aqui: C# ::: Dicas & Truques ::: Mouse e Teclado |
É possível cancelar o evento KeyPress baseado em um determinado caractere?Quantidade de visualizações: 8928 vezes |
Em algumas situações gostaríamos de cancelar o evento KeyPress baseado em um determinado caractere. Isso pode ser feito por meio da propriedade Handled da classe KeyPressEventArgs. Um objeto desta classe é fornecida ao tratador de evento KeyPress e tudo que precisamos fazer é fornecer o valor true à propriedade Handled. Veja:private void textBox1_KeyPress(object sender, KeyPressEventArgs e){ // se o usuário digitar 'a' nós cancelamos o evento KeyPress...... Aqui nós estamos "cancelando" a letra "a", ou seja, o usuário não será capaz de digitar este caractere na caixa de texto. É possível também usar a propriedade Handled com o valor true para cancelar uma faixa de caracteres. Veja: private void textBox1_KeyPress(object sender, KeyPressEventArgs e){ // vamos permitir apenas valores números de 0 à 9 this.Text = "Digite apenas os números de 0 a 9";...... Note que neste trecho de código nós obtemos o caractere digitado usando a propriedade KeyChar da classe KeyPressEventArgs e fizemos uma conversão explícita (cast) para um inteiro. Isso nos retornou o código ASCII do caractere digitado. Em seguida só tivemos que verificar se o código do caractere está na faixa 48 à 57, que é a faixa dos dígitos de 0 a 9. |
![]() |
C# ::: Threads ::: Thread |
Como usar a classe Thread para criar threads em seus programas C#Quantidade de visualizações: 11839 vezes |
A classe Thread permite criar e controlar uma thread, além de definir sua prioridade e obter seu status. Veja a posição desta classe na hierarquia de classes da plataforma .NET:System.Object System.Runtime.ConstrainedExecution.CriticalFinalizerObject System.Threading.Thread Um processo pode criar uma ou mais threads para executar parte do código do programa associado a tal processo. Usamos um delegate ThreadStart ou um delegate ParameterizedThreadStart para especificar o código do programa que será executado pela thread. O delegate ParameterizedThreadStart nos permite passar dados para as funções a serem executadas pela thread. Durante seu ciclo de vida, uma thread está sempre em um ou mais dos estados definidos pela enumeração ThreadState. Um nível de prioridade de agendamento, como definido na enumeração ThreadPriority, pode ser requisitado para a thread, mas, este comportamento nem sempre é garantido pelo sistema operacional. O método GetHashCode() fornece identificação para threads gerenciadas. Durante o ciclo de vida de uma thread, seu código de identificação não colidirá com os códigos das demais threads, independente do domínio da aplicação a partir do qual obtemos tal valor. Veja um trecho de código no qual criamos uma thread e a agendamos para execução paralela com a thread principal da aplicação. Note como os valores dos dois laços são exibidos de forma compartilhada pelas duas threads, ou seja, um thread exibe alguns valores e pára, para permitir que a outra faça parte do seu trabalho: class Program{ static void Main(string[] args){ // using using System.Threading; // vamos criar uma nova instância da clase Thread // e fornecer o método que será executado Thread thread = new Thread(contar); // vamos agendar a thread para futura execução thread.Start(); // agora vamos contar na thread principal for (int i = 0; i <= 20; i++){ Console.Write("#" + Thread.CurrentThread.GetHashCode() ...... Aqui eu usei a sintáxe de criação de objetos da classe Thread que cria uma instância de ThreadStart nos bastidores, ou seja, forneci apenas o método a ser executado pela nova thread. Note também que uma chamada ao método Start() da thread não faz com que a thread seja executada imediatamente. Este método apenas torna a thread elegível para execução, ou seja, no estado "pronta" (Running). É o sistema operacional que determina quando a mesma será executada. |
C# ::: Dicas & Truques ::: Strings e Caracteres |
Como retornar uma substring de uma string C# usando o método Substring() da classe String - C# para iniciantesQuantidade de visualizações: 32698 vezes |
Esta dica mostra como obter parte de uma palavra, frase ou texto, ou seja, extrair uma substring a partir de uma string. Isso pode ser feito por meio da função Substring() da classe String da linguagem C#. Veja que temos que fornecer o índice do primeiro caractere (começando em 0) e a quantidade de caracteres que serão obtidos. Veja o código completo para o exemplo: using System; namespace Estudos{ class Program{ static void Main(string[] args) { string frase = "Gosto muito de C#"; Console.WriteLine("A frase é: " + frase); // obtém a substring "muito" ...... Ao executar este código nós teremos o seguinte resultado: A frase é: Gosto muito de C# Substring obtida: muito |
C# ::: Coleções (Collections) ::: List<T> |
Como inserir um novo elemento em uma posição N de uma List<T> do C# usando a função Insert()Quantidade de visualizações: 8989 vezes |
Em algumas situações gostaríamos de inserir um novo elemento em uma determinada posição de uma List<T>, ou seja, queremos ser capazes de inserir o novo elemento em qualquer posição, e não somente no final da lista. Para isso podemos usar o método Insert(). Veja sua assinatura:public void Insert( int index, T item ) static void Main(string[] args){ // vamos criar um objeto da classe List<T> List<int> valores = new List<int>(); // vamos inserir quatro valores na lista valores.Add(5); valores.Add(2); valores.Add(6); valores.Add(9); // vamos usar o laço foreach para percorrer os elementos na lista Console.WriteLine("Elementos na lista:"); foreach(int v in valores){ ...... Ao executarmos este código teremos o seguinte resultado: Elementos na lista: 5 2 6 9 Elementos na lista: 5 2 20 6 9 Este método pode lançar uma exceção do tipo ArgumentOutOfRangeException se o índice fornecido for menor que 0 ou superior à quantidade de itens na lista. |
Desafios, Exercícios e Algoritmos Resolvidos de C# |
Veja mais Dicas e truques de C# |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |