Você está aqui: C# ::: Windows Forms ::: TextBox

Aprenda a tratar a tecla Enter em caixas de texto de múltiplas linhas

Quantidade de visualizações: 16652 vezes
Por padrão, quando pressionamos a tecla Enter em uma caixa de texto de múltiplas linhas, uma nova linha é criada e o cursor é posicionado no início desta. Em algumas situações pode ser necessário alterar este comportamento, ou seja, poderíamos querer pressionar Enter na caixa de texto e imediatamente acionar o botão padrão do formulário (aquele definido na propriedade AcceptButton do formulário). Para isso podemos usar a propriedade AcceptsReturn da classe TextBox. Veja um exemplo de como disparar o botão padrão ao pressionar Enter na caixa de texto:

private void button7_Click(object sender, EventArgs e){
  // define a caixa de texto como sendo de múltiplas 
  // linhas
  textBox1.Multiline = true;

  // alteramos o comportamento padrão da tecla Enter
  // para disparar o botão padrão do formulário
  textBox1.AcceptsReturn = false;
}

Veja que tudo que fizemos foi definir o valor false para a propriedade AcceptsReturn. Por padrão este valor é true. Lembre-se de que o valor desta propriedade pode ser obtido em tempo de execução. Veja:

private void button7_Click(object sender, EventArgs e){
  // obtém o valor da propriedade AcceptsReturn
  bool valor = textBox1.AcceptsReturn;

  // exibe o resultado
  MessageBox.Show("O valor da propriedade AcceptsReturn"
    + " é " + valor);
}

Se estiver definindo o valor false para a propriedade AcceptsReturn de uma caixa de texto de múltiplas linhas, lembre-se de definir o botão padrão do formulário. Do contrário o efeito desejado não será obtido.


C# ::: Dicas & Truques ::: Mouse e Teclado

C# Windows Forms - Como tratar eventos do mouse em suas aplicações C# Windows Forms

Quantidade de visualizações: 14207 vezes
Aplicações de interface gráfica (GUI) em C# fazem uso extensivo do mouse e qualquer classe que herde de System.Windows.Forms.Control pode receber e tratar seus eventos. Os eventos do mouse mais comuns são pressionamento (click), liberação, movimento, etc. E cada um possui suas particularidades.

Sempre que um evento do mouse ocorre, as informações sobre tal evento são fornecidas ao método de tratamento de evento por meio de um objeto da classe MouseEventArgs (alguns eventos usam EventArgs) e o delegate usado para criar os gerenciadores de eventos do mouse é MouseEventHandler. Veja, por exemplo, o tratador de evento para o evento MouseClick de um Button:

private void button1_MouseClick(object sender, MouseEventArgs e){
  MessageBox.Show("Sou um Button e acabei de ser clicado!");
}

A classe MouseEventArgs é muito útil, pois é ela que nos permite obter informações sobre qual botão foi pressionado, as coordenadas x e y do evento, se um duplo-clique ocorreu, etc.

Veja um trecho de código no qual verificamos qual botão do mouse foi pressionado durante um evento MouseUp em um formulário:

private void Form1_MouseUp(object sender, MouseEventArgs e){
  if(e.Button == MouseButtons.Left){
    MessageBox.Show("Fui clicado com o botão esquerdo!");
  }
  else if(e.Button == MouseButtons.Right){
    MessageBox.Show("Fui clicado com o botão direito!");
  }
  else if (e.Button == MouseButtons.Middle){
    MessageBox.Show("Fui clicado com o botão do meio!");
  }
  else{
    MessageBox.Show("O que está acontecendo?");
  }
}

Veja os eventos do mouse que possuem um objeto da classe EventArgs:

a) MouseEnter - Ocorre quando o cursor do mouse entra na área de um controle.

b) MouseLeave - Ocorre quando o cursor do mouse deixa a área de um controle.

c) Click - Ocorre quando clicamos na área de um controle. Note que um click do mouse envolve pressionar e liberar o botão do mouse.

Veja os eventos do mouse que possuem um objeto da classe MouseEventArgs:

a) MouseDown - Ocorre quando o botão do mouse é pressionado dentro da área de um controle.

b) MouseHover - Ocorre quando o cursor do mouse pára sobre a área de um controle (sem clique, pressionamento ou movimento).

c) MouseMove - Ocorre quando movimentamos o mouse na área de um controle.

d) MouseUp - Ocorre quando o botão do mouse é liberado sobre a área de um controle.

e) MouseClick - Ocorre quando clicamos na área de um controle. Note que um click do mouse envolve pressionar e liberar o botão do mouse.

Há algumas diferenças significativas entre os eventos Click e MouseClick. Não deixe de consultar as outras dicas desta seção para aprofundar seus conhecimentos.


C# ::: Windows Forms ::: Formulários e Janelas

Como maximizar um formulário Windows Forms ao clicar em um botão usando a linguagem C#

Quantidade de visualizações: 11665 vezes
Em algumas situações gostaríamos de maximizar um formulário Windows Forms baseado em alguma ação do usuário. Isso pode ser feito definindo-se a constante FormWindowState.Maximized para a propriedade WindowState da classe Form.

O trecho de código abaixo mostra como maximizar o formulário ao clicarmos em um botão:

private void button1_Click(object sender, EventArgs e){
  // vamos maximizar o formulário
  this.WindowState = FormWindowState.Maximized;
}



C# ::: Dicas & Truques ::: Strings e Caracteres

Apostila C# para iniciantes - Como remover todos os espaços de uma string usando o método Replace() da classe String do C#

Quantidade de visualizações: 12254 vezes
Nesta dica mostrarei como tirar proveito do método Replace() da classe String do C# para remover todos os espaços de uma frase ou texto. Note que, usando esta técnica, todos os espaços serão removidos, tanto no início, quanto no meio ou fim da string.

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("Com espaços: " + frase);

      // remove todos os espaços
      frase = frase.Replace(" ", "");
      Console.WriteLine("Sem espaços: " + frase);

      Console.WriteLine("\n\nPressione uma tecla para sair...");
      Console.ReadKey();
    }
  }
}

Ao executar este código nós teremos o seguinte resultado:

Com espaços: Gosto muito de C#
Sem espaços: GostomuitodeC#


C# ::: Dicas & Truques ::: Arquivos e Diretórios

Como usar a classe FileSystemWatcher em seus programas C#

Quantidade de visualizações: 7588 vezes
Podemos usar objetos da classe FileSystemWatcher quando queremos monitorar mudanças em um determinado diretório do sistema. Estas alterações podem ser observadas em arquivos e subdiretórios do diretório especificado. Usando objetos desta classe nós podemos monitorar modificações em arquivos no computador local, em um drive na rede ou em um computador remoto.

Veja a posição desta classe na hierarquia de classes da plataforma .NET:

System.Object
  System.MarshalByRefObject
    System.ComponentModel.Component
      System.IO.FileSystemWatcher


Para adicionar um componente FileSystemWatcher em sua aplicação C# basta localizá-lo na seção Components da Toolbox. Em seguida clique no mesmo e arraste-o para o formulário. Para definir o diretório a ser monitorado, clique no componente, acesse suas propriedades e defina o caminho do diretório na propriedade Path. Um exemplo de diretório poderia ser "C:\arquivo de codigos".

Neste exemplo veremos como detectar alterações nos arquivos e sub-diretórios. Desta forma, vá nos eventos do componente FileSystemWatcher e insira o código abaixo para o evento Changed:

private void fileSystemWatcher1_Changed(object sender, 
  FileSystemEventArgs e){
  
  // vamos verificar o que foi modificado neste diretório
  textBox1.AppendText("Arquivo: " + e.FullPath + " sofreu alterações: " +
    e.ChangeType + Environment.NewLine);
}

Execute a aplicação e experimente criar um arquivo txt no diretório "C:\arquivo de códigos" e modificar seu conteúdo várias vezes. Volte à aplicação e a caixa de texto terá um conteúdo parecido com:

Arquivo: C:\arquivo de codigos\dados2.txt sofreu 
alterações: Changed
Arquivo: C:\arquivo de codigos\dados2.txt sofreu 
alterações: Changed



C# ::: Dicas & Truques ::: Strings e Caracteres

Como remover os espaços no final de uma string usando o método TrimEnd() da classe String do C#

Quantidade de visualizações: 6608 vezes
Nesta dica mostrarei como podemos usar o método TrimEnd() da classe String da linguagem C# para remover os espaços no final de uma palavra, frase ou texto. Esta é uma tarefa importante antes de validar as informações inseridas pelos usuários de nossas aplicações.

Veja o código completo:

using System;

namespace Estudos{
  class Program{
    static void Main(string[] args) {
      string texto = "  temos espaços no início e fim   ";
      Console.WriteLine("Com espaços: ." + texto + ".");

      // remove os espaços no fim da string
      texto = texto.TrimEnd();
      Console.WriteLine("Sem espaços: ." + texto + ".");

      Console.WriteLine("\n\nPressione uma tecla para sair...");
      Console.ReadKey();
    }
  }
}

Ao executar este código nós teremos os seguinte resultado:

Com espaços: .  temos espaços no início e fim   .
Sem espaços: .  temos espaços no início e fim.



Veja mais Dicas e truques de C#

Dicas e truques de outras linguagens

Quem Somos

Osmar J. Silva
WhatsApp +55 (062) 98553-6711

Goiânia-GO
Full Stack Developer, Professional Java Developer, PHP, C/C++, Python Programmer, wxWidgets Professional C++ Programmer, Freelance Programmer. Formado em Ciência da Computação pela UNIP (Universidade Paulista Campus Goiânia) e cursando Engenharia Elétrica pela PUC-Goiás. Possuo conhecimentos avançados de Java, Python, JavaScript, C, C++, PHP, C#, VB.NET, Delphi, Android, Perl, e várias tecnologias que envolvem o desenvolvimento web, desktop, front-end e back-end. Atuo há mais de 15 anos como programador freelancer, atendendo clientes no Brasil, Portugal, Argentina e vários outros paises.
Entre em contato comigo para, juntos, vermos em que posso contribuir para resolver ou agilizar o desenvolvimento de seus códigos.
José de Angelis
WhatsApp +55 (062) 98243-1195

Goiânia-GO
Formado em Sistemas de Informação pela Faculdade Delta, Pós graduado em Engenharia de Software (PUC MINAS), Pós graduado Marketing Digital (IGTI) com ênfase em Growth Hacking. Mais de 15 anos de experiência em programação Web. Marketing Digital focado em desempenho, desenvolvimento de estratégia competitiva, analise de concorrência, SEO, webvitals, e Adwords, Métricas de retorno. Especialista Google Certificado desde 2011 Possui domínio nas linguagens PHP, C#, JavaScript, MySQL e frameworks Laravel, jQuery, flutter. Atualmente aluno de mestrado em Ciência da Computação (UFG)
Não basta ter um site. É necessário ter um site que é localizado e converte usuários em clientes. Se sua página não faz isso, Fale comigo e vamos fazer uma analise e conseguir resultados mais satisfatórios..

Linguagens Mais Populares

1º lugar: Java
2º lugar: C#
3º lugar: PHP
4º lugar: Delphi
5º lugar: Python
6º lugar: JavaScript
7º lugar: C
8º lugar: C++
9º lugar: VB.NET
10º lugar: JSP (Java Server Pages)



© 2021 Arquivo de Códigos - Todos os direitos reservados | Versión en Español | Versão em Português