none
Textbox bloquear a função Colar RRS feed

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
    sexta-feira, 19 de outubro de 2012 18:01

Todas as Respostas

  • Mas pra que necessariamente seria essa função?

    se ele colar ira impedir alguma coisa, seja mais especifico em suas perguntas..

    Não seja enganado Leia as Escrituras Sagradas..

    sexta-feira, 19 de outubro de 2012 17:55
  • 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
    sexta-feira, 19 de outubro de 2012 18:01
  • 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.

    sexta-feira, 19 de outubro de 2012 18:30
  • Se você seguir o que o nosso amigo Vitor postou, você resolve teus problemas :)

    Um abraço e boa sorte!

    sexta-feira, 19 de outubro de 2012 18:45
  • 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
    sexta-feira, 19 de outubro de 2012 19:46
  • 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

    Boa notação Peterson, qualificado :)

    Vitor Mendes | Seu feedback é muito importante para todos!
    Visite o meu site: http://www.vitormendes.com.br/

    sexta-feira, 19 de outubro de 2012 19:49