Usuário com melhor resposta
Textbox bloquear a função Colar

Pergunta
-
Respostas
-
Carlos,
Você pode usar os eventos MouseDown e KeyDown para validar isso:
using System; using System.Windows.Forms; namespace WindowsFormsApplication2 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { TextBox textBox1 = new TextBox(); textBox1.KeyDown += textBox1_KeyDown; textBox1.MouseDown += textBox1_MouseDown; this.Controls.Add(textBox1); } private void textBox1_KeyDown(object sender, KeyEventArgs e) { //Validando se o usuario aperto no teclado Ctrl + V if (e.Control && e.KeyValue == 86) { e.Handled = true; e.SuppressKeyPress = true; } } private void textBox1_MouseDown(object sender, MouseEventArgs e) { //Verificando se usuario clicou com botão direito sobre o textBox if (e.Button == System.Windows.Forms.MouseButtons.Right) { MessageBox.Show("Botão direito sobre a caixa de texto desabilitada."); } } } }
Vitor Mendes | Seu feedback é muito importante para todos!
Visite o meu site: http://www.vitormendes.com.br/- Sugerido como Resposta Leonardo N. D'Amato sexta-feira, 19 de outubro de 2012 18:09
- Marcado como Resposta CEFL sexta-feira, 19 de outubro de 2012 19:04
Todas as Respostas
-
-
Carlos,
Você pode usar os eventos MouseDown e KeyDown para validar isso:
using System; using System.Windows.Forms; namespace WindowsFormsApplication2 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { TextBox textBox1 = new TextBox(); textBox1.KeyDown += textBox1_KeyDown; textBox1.MouseDown += textBox1_MouseDown; this.Controls.Add(textBox1); } private void textBox1_KeyDown(object sender, KeyEventArgs e) { //Validando se o usuario aperto no teclado Ctrl + V if (e.Control && e.KeyValue == 86) { e.Handled = true; e.SuppressKeyPress = true; } } private void textBox1_MouseDown(object sender, MouseEventArgs e) { //Verificando se usuario clicou com botão direito sobre o textBox if (e.Button == System.Windows.Forms.MouseButtons.Right) { MessageBox.Show("Botão direito sobre a caixa de texto desabilitada."); } } } }
Vitor Mendes | Seu feedback é muito importante para todos!
Visite o meu site: http://www.vitormendes.com.br/- Sugerido como Resposta Leonardo N. D'Amato sexta-feira, 19 de outubro de 2012 18:09
- Marcado como Resposta CEFL sexta-feira, 19 de outubro de 2012 19:04
-
Quando ele copia algum texto da web e cola e salva o registra, ele grava caracteres no formato utf-8 e para minha aplicação isso dá interferência na validação de alguns dados posteriormente.
Não reconhece alguns caracteres, digitando ele não vai carregar nenhuma sujeira.
-
-
Olá Carlos,
Fazendo como o Vitor propôs funciona, mas além de você bloquear a opção de colar com o botão direito do mouse, você também impede que ele copie ou mesmo recorte, pois todas as opções do botão direito do mouse estão bloqueadas. É possível colar com a combinaçãod e teclas Shift+Insert ainda.
Você pode criar seu próprio TextBox herdando do textBox do framework e impedir a opção de colar apenas.
Esse exemplo de classe abaixo impede que qualquer texto seja colado no textbox sem limitar nenhuma funcionalidade, e do restante ele funciona como um TextBox normal.
public class MyTextBox : System.Windows.Forms.TextBox { private const int WM_PAST = 0x0302; [System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name = "FullTrust")] protected override void WndProc(ref System.Windows.Forms.Message m) { switch (m.Msg) { case WM_PAST: break; default: base.WndProc(ref m); break; } } }
Peterson Roberto Oliveira Seridonio
Desenvolvedor C#
MCTS Windows 7- Sugerido como Resposta Vitor Mendes sexta-feira, 19 de outubro de 2012 19:49
-
Olá Carlos,
Fazendo como o Vitor propôs funciona, mas além de você bloquear a opção de colar com o botão direito do mouse, você também impede que ele copie ou mesmo recorte, pois todas as opções do botão direito do mouse estão bloqueadas. É possível colar com a combinaçãod e teclas Shift+Insert ainda.
Você pode criar seu próprio TextBox herdando do textBox do framework e impedir a opção de colar apenas.
Esse exemplo de classe abaixo impede que qualquer texto seja colado no textbox sem limitar nenhuma funcionalidade, e do restante ele funciona como um TextBox normal.
public class MyTextBox : System.Windows.Forms.TextBox { private const int WM_PAST = 0x0302; [System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name = "FullTrust")] protected override void WndProc(ref System.Windows.Forms.Message m) { switch (m.Msg) { case WM_PAST: break; default: base.WndProc(ref m); break; } } }
Peterson Roberto Oliveira Seridonio
Desenvolvedor C#
MCTS Windows 7Vitor Mendes | Seu feedback é muito importante para todos!
Visite o meu site: http://www.vitormendes.com.br/